kui-basic 1.1.71 → 1.1.73
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/Checkbox/cjs/index.js +4 -4
- package/Checkbox/cjs/index.js.map +1 -1
- package/Checkbox/index.js +4 -4
- package/Checkbox/index.js.map +1 -1
- package/Input/cjs/index.js +4 -4
- package/Input/cjs/index.js.map +1 -1
- package/Input/index.js +4 -4
- package/Input/index.js.map +1 -1
- package/InputWithAdornments/cjs/index.js +4 -4
- package/InputWithAdornments/cjs/index.js.map +1 -1
- package/InputWithAdornments/index.js +4 -4
- package/InputWithAdornments/index.js.map +1 -1
- package/InputWithCountryDropdown/cjs/index.js +4 -4
- package/InputWithCountryDropdown/cjs/index.js.map +1 -1
- package/InputWithCountryDropdown/index.js +4 -4
- package/InputWithCountryDropdown/index.js.map +1 -1
- package/InputWithMask/cjs/index.js +3 -3
- package/InputWithMask/cjs/index.js.map +1 -1
- package/InputWithMask/index.js +3 -3
- package/InputWithMask/index.js.map +1 -1
- package/Modal/cjs/index.js +4 -4
- package/Modal/cjs/index.js.map +1 -1
- package/Modal/index.js +4 -4
- package/Modal/index.js.map +1 -1
- package/Switch/cjs/index.js +4 -4
- package/Switch/cjs/index.js.map +1 -1
- package/Switch/index.js +4 -4
- package/Switch/index.js.map +1 -1
- package/cjs/index.js +4 -4
- package/cjs/index.js.map +1 -1
- package/index.js +4 -4
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/theme/colors/index.js","../src/theme/shadows/index.js","../src/theme/breakpoints/index.js","../src/theme/settings/index.js","../src/theme/index.js","../../../node_modules/classnames/index.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../src/components/Heading/variants.js","../src/components/Heading/index.js","../src/components/Caption/variants.js","../src/components/Caption/index.js","../src/components/Text/variants.js","../src/components/Text/index.js","../src/components/Button/variants.js","../src/components/Button/index.js","../src/icons/ErrorIcon.js","../src/icons/WarningIcon.js","../src/icons/SuccessIcon.js","../src/components/InputMessage/variants.js","../src/components/InputMessage/index.js","../src/icons/TextareaGrabIcon.js","../src/components/Input/index.js","../src/components/InputWithAdornments/index.js","../../../node_modules/react-input-mask/lib/react-input-mask.production.min.js","../../../node_modules/invariant/invariant.js","../../../node_modules/warning/warning.js","../../../node_modules/react-input-mask/lib/react-input-mask.development.js","../../../node_modules/react-input-mask/index.js","../src/components/InputWithMask/index.js","../src/components/InputWithCountryDropdown/Dropdown/CountryItem/index.js","../src/icons/SearchIcon.js","../src/components/InputWithCountryDropdown/Dropdown/index.js","../src/icons/HalfArrowIcon.js","../src/components/InputWithCountryDropdown/index.js","../src/components/Checkbox/index.js","../src/icons/CloseIcon.js","../src/components/Modal/index.js","../src/components/Switch/variants.js","../src/components/Switch/index.js","../src/components/Radio/index.js","../src/icons/FileIcon.js","../src/components/InputFile/index.js","../src/components/Divider/index.js","../src/components/Container/index.js","../src/components/Grid/index.js","../src/components/Box/index.js","../src/components/Accordion/index.js","../src/components/AccordionSummary/index.js","../src/components/AccordionDetails/index.js","../src/components/Skeleton/index.js","../src/components/AppBar/index.js","../src/components/ToolBar/index.js","../src/components/CircularProgress/index.js","../src/components/LinearProgress/index.js","../src/components/Tabs/index.js","../src/components/Tab/index.js","../src/components/TabsPanel/index.js","../../../node_modules/lodash.throttle/index.js","../../../node_modules/react-scroll/modules/mixins/passive-event-listeners.js","../../../node_modules/react-scroll/modules/mixins/scroll-spy.js","../../../node_modules/react-scroll/modules/mixins/utils.js","../../../node_modules/react-scroll/modules/mixins/smooth.js","../../../node_modules/react-scroll/modules/mixins/cancel-events.js","../../../node_modules/react-scroll/modules/mixins/scroll-events.js","../../../node_modules/react-scroll/modules/mixins/animate-scroll.js","../../../node_modules/react-scroll/modules/mixins/scroller.js","../../../node_modules/react-scroll/modules/mixins/scroll-hash.js","../../../node_modules/react-scroll/modules/mixins/scroll-link.js","../../../node_modules/react-scroll/modules/components/Link.js","../../../node_modules/react-scroll/modules/components/Button.js","../../../node_modules/react-scroll/modules/mixins/scroll-element.js","../../../node_modules/react-scroll/modules/components/Element.js","../../../node_modules/react-scroll/modules/mixins/Helpers.js","../../../node_modules/react-scroll/modules/index.js","../src/components/ScrollTab/index.js","../src/components/MenuPanel/index.js","../src/components/IconButton/index.js","../src/components/Popper/index.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js","../../../node_modules/@floating-ui/react/dist/floating-ui.react.esm.js","../src/components/Tooltip/index.js","../src/components/ErrorComponent/index.js"],"sourcesContent":["const colors = {\r\n primary: {\r\n main: \"#ED713C\",\r\n pressed: \"#D24C13\",\r\n hover: \"#EA5A1D\",\r\n light: \"#FCEAE2\",\r\n light2: \"#FEF7F3\",\r\n },\r\n secondary: {\r\n main: \"#18191F\",\r\n gray60: \"#474A57\",\r\n gray50: \"#7F8285\",\r\n gray40: \"#949494\",\r\n gray30: \"#BFBFBF\",\r\n gray15: \"#EAECEF\",\r\n white: \"#FFFFFF\",\r\n light: \"#C4C4C4\",\r\n disabled: \"#A6AEBC\",\r\n },\r\n background: {\r\n main: \"#FBFBFD\",\r\n light2: \"#F7F8F9\",\r\n light3: \"#F2F3F5\",\r\n },\r\n success: {\r\n green70: \"#259E58\",\r\n green60: \"#23A65A\",\r\n main: \"#27AE60\",\r\n green10: \"#EAFCF7\",\r\n green5: \"#F0FDF9\",\r\n },\r\n error: {\r\n red70: \"#D03C1A\",\r\n red60: \"#DA421F\",\r\n main: \"#EB4620\",\r\n red10: \"#FCE3DE\",\r\n red5: \"#FDF0ED\",\r\n },\r\n info: {\r\n blue70: \"#0098B6\",\r\n blue60: \"#009CBB\",\r\n main: \"#00ABCD\",\r\n blue10: \"#D9F2F8\",\r\n blue5: \"#E5F7FA\",\r\n },\r\n purple: {\r\n purple70: \"#914BD2\",\r\n purple60: \"#974EDB\",\r\n main: \"#9B51E0\",\r\n purple10: \"#F0E5FA\",\r\n purple5: \"#F7F1FD\",\r\n },\r\n}\r\n\r\nexport default colors\r\n","const shadows = {\r\n shadow1: \"0px 5px 16px rgba(0, 0, 0, 0.1)\",\r\n shadow2: \"0px 12px 16px rgba(0, 0, 0, 0.08)\",\r\n shadow3: \"0px 26px 34px rgba(0, 0, 0, 0.1)\",\r\n shadow4: \"0px 10px 20px rgba(0, 0, 0, 0.1)\",\r\n}\r\n\r\nexport default shadows\r\n","const breakpoints = {\r\n xxs: 375,\r\n xs: 600,\r\n sm: 900,\r\n md: 1200,\r\n lg: 1440,\r\n xl: 1536,\r\n}\r\n\r\nexport default breakpoints\r\n","const settings = {\r\n spacing: 8,\r\n columns: 12,\r\n}\r\n\r\nexport default settings\r\n","import colors from \"./colors\"\r\nimport shadows from \"./shadows\"\r\nimport breakpoints from \"./breakpoints\"\r\nimport settings from \"./settings\"\r\n\r\nconst palette = {\r\n brand: {\r\n ...colors.primary,\r\n background: colors.primary.light2,\r\n },\r\n grey: {\r\n seventy: colors.secondary.main,\r\n sixty: colors.secondary.gray60,\r\n fiftyP: colors.secondary.gray50,\r\n fourty: colors.secondary.gray40,\r\n thirty: colors.secondary.gray30,\r\n fifteenB: colors.secondary.gray15,\r\n zero: colors.secondary.white,\r\n },\r\n background: {\r\n ...colors.background,\r\n light1: colors.background.main,\r\n light4: \"#C5C6C7\",\r\n },\r\n green: {\r\n fiftyP: colors.success.main,\r\n seventy: colors.success.green70,\r\n sixty: colors.success.green60,\r\n ten: colors.success.green10,\r\n five: colors.success.green5,\r\n },\r\n red: {\r\n fiftyP: colors.error.main,\r\n seventy: colors.error.red70,\r\n sixty: colors.error.red60,\r\n ten: colors.error.red10,\r\n five: colors.error.red5,\r\n },\r\n blue: {\r\n fiftyP: colors.info.main,\r\n seventy: colors.info.blue70,\r\n sixty: colors.info.blue60,\r\n ten: colors.info.blue10,\r\n five: colors.info.blue5,\r\n },\r\n purple: {\r\n fiftyP: colors.purple.main,\r\n seventy: colors.purple.purple70,\r\n sixty: colors.purple.purple60,\r\n ten: colors.purple.purple10,\r\n five: colors.purple.purple5,\r\n },\r\n}\r\n\r\nconst themeOld = {\r\n palette: colors,\r\n breakpoints,\r\n shadows,\r\n settings,\r\n}\r\n\r\nconst theme = {\r\n palette,\r\n breakpoints,\r\n shadows,\r\n settings,\r\n}\r\n\r\nexport { themeOld, theme }\r\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","const headingSizes = {\r\n hero: \"h1\",\r\n h1: \"h1\",\r\n h2: \"h2\",\r\n h3: \"h3\",\r\n h4: \"h4\",\r\n}\r\n\r\nconst headingVariants = {\r\n hero: {\r\n size: 56,\r\n height: 72,\r\n mobSize: 32,\r\n mobHeight: 48,\r\n },\r\n h1: {\r\n size: 32,\r\n height: 48,\r\n mobSize: 24,\r\n mobHeight: 32,\r\n },\r\n h2: {\r\n size: 24,\r\n height: 32,\r\n mobSize: 18,\r\n mobHeight: 24,\r\n },\r\n h3: {\r\n size: 18,\r\n height: 24,\r\n mobSize: 16,\r\n mobHeight: 24,\r\n },\r\n h4: {\r\n size: 16,\r\n height: 24,\r\n mobSize: 14,\r\n mobHeight: 24,\r\n },\r\n}\r\n\r\nexport { headingVariants, headingSizes }\r\n","import React, { forwardRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport { theme } from \"../../theme\"\r\nimport { headingSizes, headingVariants } from \"./variants\"\r\n\r\nconst { breakpoints, palette } = theme\r\n\r\nconst Heading = forwardRef((props, ref) => {\r\n const { size, children, className, ...otherProps } = props\r\n\r\n return (\r\n <StyledHeading\r\n as={headingSizes[size]}\r\n size={headingVariants[size]}\r\n className={classNames(\"KUI-Heading\", className)}\r\n ref={ref}\r\n {...otherProps}\r\n >\r\n {children}\r\n </StyledHeading>\r\n )\r\n})\r\n\r\nHeading.defaultProps = {\r\n size: \"h1\",\r\n color: \"seventy\",\r\n colorGroup: \"grey\",\r\n disableUserSelect: false,\r\n weight: 700,\r\n}\r\n\r\nHeading.propTypes = {\r\n size: PropTypes.oneOf([\"hero\", \"h1\", \"h2\", \"h3\", \"h4\"]),\r\n disableUserSelect: PropTypes.bool,\r\n weight: PropTypes.number,\r\n}\r\n\r\nexport default Heading\r\n\r\nconst headingSettingsCSS = (props) => css`\r\n font-size: ${props.size.size}px;\r\n line-height: ${props.size.height}px;\r\n text-align: ${props.align};\r\n color: ${palette[props.colorGroup][props.color]\r\n ? palette[props.colorGroup][props.color]\r\n : palette.grey.seventy};\r\n font-weight: ${props.weight};\r\n ${props.disableUserSelect && \"user-select: none\"};\r\n @media (max-width: ${breakpoints.sm}px) {\r\n font-size: ${props.size.mobSize}px;\r\n line-height: ${props.size.mobHeight}px;\r\n }\r\n`\r\n\r\nconst StyledHeading = styled.h1`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n text-transform: none;\r\n margin: 0;\r\n font-weight: 700;\r\n ${headingSettingsCSS};\r\n`\r\n","const captionSizes = {\r\n xs: {\r\n size: 12,\r\n height: 14,\r\n },\r\n sm: {\r\n size: 13,\r\n height: 14,\r\n high: 20,\r\n },\r\n s: {\r\n size: 14,\r\n height: 18,\r\n high: 22,\r\n },\r\n m: {\r\n size: 16,\r\n height: 24,\r\n },\r\n l: {\r\n size: 18,\r\n height: 28,\r\n },\r\n}\r\n\r\nexport default captionSizes\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport captionSizes from \"./variants\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst Caption = forwardRef((props, ref) => {\r\n const { children, size, className, ...otherProps } = props\r\n\r\n return (\r\n <StyledCaption\r\n size={captionSizes[size]}\r\n className={classNames(\"KUI-Caption\", className)}\r\n ref={ref}\r\n {...otherProps}\r\n >\r\n {children}\r\n </StyledCaption>\r\n )\r\n})\r\n\r\nCaption.defaultProps = {\r\n size: \"m\",\r\n weight: 400,\r\n color: \"seventy\",\r\n colorGroup: \"grey\",\r\n disableUserSelect: false,\r\n variant: \"default\",\r\n}\r\n\r\nCaption.displayName = \"Caption\"\r\n\r\nCaption.propTypes = {\r\n size: PropTypes.oneOf([\"xs\", \"sm\", \"s\", \"m\", \"l\"]),\r\n weight: PropTypes.oneOf([400, 500, 600, 700]),\r\n disableUserSelect: PropTypes.bool,\r\n variant: PropTypes.oneOf([\"default\", \"high\"]),\r\n}\r\n\r\nexport default Caption\r\n\r\nconst captionSettingsCSS = ({\r\n size,\r\n weight,\r\n align,\r\n color,\r\n colorGroup,\r\n disSelect,\r\n variant,\r\n}) => css`\r\n font-size: ${size.size}px;\r\n line-height: ${variant === \"high\" ? size.high || size.height : size.height}px;\r\n font-weight: ${weight};\r\n text-align: ${align};\r\n ${disSelect && \"user-select: none\"};\r\n color: ${theme.palette[colorGroup][color]\r\n ? theme.palette[colorGroup][color]\r\n : theme.palette.grey.seventy};\r\n`\r\n\r\nconst StyledCaption = styled.p`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n text-transform: none;\r\n margin: 0;\r\n ${captionSettingsCSS};\r\n`\r\n","const textVariants = {\r\n xs: {\r\n size: 13,\r\n height: 20,\r\n },\r\n s: {\r\n size: 14,\r\n height: 22,\r\n },\r\n m: {\r\n size: 18,\r\n height: 28,\r\n },\r\n}\r\n\r\nexport default textVariants\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport { css } from \"@emotion/react\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\nimport textVariants from \"./variants\"\r\n\r\nfunction Text(props) {\r\n const { children, size, className, ...otherProps } = props\r\n\r\n return (\r\n <StyledText\r\n size={textVariants[size]}\r\n className={classNames(\"KUI-Text\", className)}\r\n {...otherProps}\r\n >\r\n {children}\r\n </StyledText>\r\n )\r\n}\r\n\r\nText.defaultProps = {\r\n size: \"s\",\r\n color: \"seventy\",\r\n disableUserSelect: false,\r\n weight: 400,\r\n}\r\n\r\nText.propTypes = {\r\n size: PropTypes.oneOf([\"xs\", \"s\", \"m\"]),\r\n weight: PropTypes.oneOf([400, 500, 600]),\r\n color: PropTypes.oneOf([\r\n \"seventy\",\r\n \"sixty\",\r\n \"fiftyP\",\r\n \"fourty\",\r\n \"zero\",\r\n \"brand\",\r\n ]),\r\n disableUserSelect: PropTypes.bool,\r\n}\r\n\r\nexport default Text\r\n\r\nconst textSettingsCSS = ({ size, weight, color, disSelect }) => css`\r\n font-size: ${size.size}px;\r\n line-height: ${size.height}px;\r\n font-weight: ${weight};\r\n ${disSelect && \"user-select: none\"};\r\n color: ${theme.palette.grey[color]\r\n ? theme.palette.grey[color]\r\n : theme.palette.brand.main};\r\n`\r\n\r\nconst StyledText = styled.p`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n text-transform: none;\r\n margin: 0;\r\n ${textSettingsCSS};\r\n`\r\n","import { theme } from \"../../theme\"\r\n\r\nconst palette = theme.palette\r\n\r\nconst buttonSizes = {\r\n xs: 32,\r\n s: 40,\r\n m: 48,\r\n l: 56,\r\n}\r\n\r\nconst buttonBorders = {\r\n brand: palette.brand.main,\r\n lightGray: palette.grey.fifteenB,\r\n lightOrange: palette.brand.light,\r\n}\r\n\r\nconst buttonVariants = {\r\n primary: {\r\n background: palette.brand.main,\r\n color: palette.grey.zero,\r\n hover: palette.brand.hover,\r\n active: palette.brand.pressed,\r\n },\r\n orange: {\r\n background: palette.brand.light,\r\n color: palette.brand.main,\r\n hover: palette.brand.hover,\r\n active: palette.brand.pressed,\r\n hoverColor: palette.grey.zero,\r\n },\r\n white: {\r\n background: palette.grey.zero,\r\n color: palette.grey.seventy,\r\n hover: palette.background.light1,\r\n active: palette.grey.fifteenB,\r\n border: palette.grey.fifteenB,\r\n },\r\n whiteWithOrangeHover: {\r\n color: palette.grey.sixty,\r\n hover: palette.brand.light,\r\n active: palette.brand.light,\r\n hoverColor: palette.brand.main,\r\n },\r\n whiteWithGray: {\r\n background: palette.grey.zero,\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light1,\r\n active: palette.grey.fifteenB,\r\n hoverColor: palette.grey.seventy,\r\n border: palette.background.light3,\r\n },\r\n whiteWithBrand: {\r\n background: palette.grey.zero,\r\n color: palette.brand.main,\r\n },\r\n grayLightWithBorder: {\r\n background: palette.background.light1,\r\n color: palette.grey.fiftyP,\r\n border: palette.grey.fifteenB,\r\n hover: palette.background.light2,\r\n hoverColor: palette.grey.seventy,\r\n active: palette.grey.fifteenB,\r\n },\r\n grayLight: {\r\n background: palette.background.light2,\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light3,\r\n hoverColor: palette.grey.seventy,\r\n active: palette.grey.fifteenB,\r\n },\r\n grayDark: {\r\n background: palette.grey.fiftyP,\r\n color: palette.grey.zero,\r\n hover: palette.grey.sixty,\r\n hoverColor: palette.grey.zero,\r\n pressed: palette.grey.sixty,\r\n },\r\n backgroundLight: {\r\n background: palette.background.light2,\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light1,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n },\r\n backgroundWithBorder: {\r\n background: palette.background.light1,\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light3,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n border: palette.grey.fifteenB,\r\n },\r\n blur: {\r\n background: \"rgba(0, 0, 0, 0.6)\",\r\n color: palette.grey.zero,\r\n hover: \"rgba(0, 0, 0, 0.7)\",\r\n active: \"rgba(0, 0, 0, 0.8)\",\r\n backdrop: \"blur(4px)\",\r\n },\r\n blurDark: {\r\n background: \"rgba(0, 0, 0, 0.6)\",\r\n color: palette.grey.zero,\r\n hover: \"rgba(0, 0, 0, 0.8)\",\r\n hoverColor: palette.grey.zero,\r\n pressed: \"rgba(0, 0, 0, 1)\",\r\n },\r\n green: {\r\n background: palette.green.fiftyP,\r\n color: palette.grey.zero,\r\n hover: palette.green.sixty,\r\n active: palette.green.seventy,\r\n },\r\n red: {\r\n background: palette.red.fiftyP,\r\n color: palette.grey.zero,\r\n hover: palette.red.sixty,\r\n active: palette.red.seventy,\r\n },\r\n error: {\r\n background: palette.red.five,\r\n color: palette.red.fiftyP,\r\n hover: palette.red.ten,\r\n hoverColor: palette.red.fiftyP,\r\n pressed: palette.red.ten,\r\n },\r\n transparent: {\r\n withoutShadow: true,\r\n },\r\n orangeWithHoverLight: {\r\n background: palette.brand.background,\r\n color: palette.brand.main,\r\n hover: palette.brand.background,\r\n hoverColor: palette.brand.main,\r\n pressed: palette.brand.background,\r\n },\r\n orangeWithBorder: {\r\n background: palette.brand.light,\r\n color: palette.brand.main,\r\n hover: palette.brand.background,\r\n hoverColor: palette.brand.main,\r\n pressed: palette.brand.background,\r\n border: palette.brand.main,\r\n },\r\n transparentLight: {\r\n color: palette.grey.thirty,\r\n hoverColor: palette.grey.fiftyP,\r\n pressed: palette.grey.fifteenB,\r\n withoutShadow: true,\r\n },\r\n transparentWithBorder: {\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light3,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n border: palette.grey.fifteenB,\r\n },\r\n transparentWithDarkBorder: {\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light3,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n border: palette.grey.fiftyP,\r\n },\r\n transparentWithBoldBorder: {\r\n color: palette.grey.thirty,\r\n hover: palette.background.light1,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n border: palette.grey.thirty,\r\n },\r\n}\r\n\r\nexport { buttonSizes, buttonBorders, buttonVariants }\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport { css } from \"@emotion/react\"\r\nimport styled from \"@emotion/styled\"\r\nimport Caption from \"../Caption\"\r\nimport { buttonSizes, buttonBorders, buttonVariants } from \"./variants\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst Button = forwardRef((props, ref) => {\r\n const {\r\n children,\r\n variant,\r\n size,\r\n className,\r\n fullWidth,\r\n isCircle,\r\n captionSize,\r\n disabledStyle,\r\n border,\r\n startIcon,\r\n endIcon,\r\n captionWeight,\r\n withoutChildrenWrapper,\r\n ...buttonProps\r\n } = props\r\n\r\n return (\r\n <StyledButton\r\n ref={ref}\r\n size={size}\r\n variant={variant}\r\n border={border}\r\n fullWidth={fullWidth}\r\n isCircle={isCircle}\r\n className={classNames(\r\n \"KUI-Button\",\r\n buttonProps.disabled && \"KUI-Button_disabled\",\r\n buttonProps.disabled && disabledStyle,\r\n className\r\n )}\r\n {...buttonProps}\r\n >\r\n {isCircle ? (\r\n <StyledCircleButtonContainer className=\"KUI-Button_circle-container\">\r\n {children}\r\n </StyledCircleButtonContainer>\r\n ) : (\r\n <StyledContentContainer\r\n withIcon={startIcon || endIcon}\r\n className={classNames(\r\n (startIcon || endIcon) && \"KUI-Button_icon-container\"\r\n )}\r\n >\r\n {startIcon && (\r\n <StyledStartIcon className=\"KUI-Button_start-icon\">\r\n {startIcon}\r\n </StyledStartIcon>\r\n )}\r\n\r\n {withoutChildrenWrapper ? (\r\n children\r\n ) : (\r\n <Caption\r\n size={captionSize}\r\n weight={captionWeight}\r\n className=\"KUI-Button-text\"\r\n >\r\n {children}\r\n </Caption>\r\n )}\r\n\r\n {endIcon && (\r\n <StyledEndIcon className=\"KUI-Button_end-icon\">\r\n {endIcon}\r\n </StyledEndIcon>\r\n )}\r\n </StyledContentContainer>\r\n )}\r\n </StyledButton>\r\n )\r\n})\r\n\r\nButton.defaultProps = {\r\n variant: \"primary\",\r\n size: \"m\",\r\n fullWidth: false,\r\n endIcon: null,\r\n startIcon: null,\r\n disabled: false,\r\n isCircle: false,\r\n captionSize: \"s\",\r\n border: null,\r\n captionWeight: 600,\r\n}\r\n\r\nButton.propTypes = {\r\n size: PropTypes.oneOf([\"xs\", \"s\", \"m\", \"l\"]),\r\n fullWidth: PropTypes.bool,\r\n endIcon: PropTypes.element,\r\n startIcon: PropTypes.element,\r\n disabled: PropTypes.bool,\r\n isCircle: PropTypes.bool,\r\n captionSize: PropTypes.oneOf([\"xs\", \"sm\", \"s\", \"m\", \"l\"]),\r\n border: PropTypes.oneOf([\"brand\", \"lightGray\", \"lightOrange\"]),\r\n}\r\n\r\nButton.displayName = \"Button\"\r\n\r\nexport default Button\r\n\r\nconst buttonVariantCSS = (variant) => css`\r\n background-color: ${variant.background ? variant.background : \"transparent\"};\r\n & .KUI-Button-text {\r\n ${variant.color && `color: ${variant.color}`};\r\n }\r\n svg path {\r\n ${variant.color && `fill: ${variant.color}`};\r\n }\r\n border: 1px solid ${variant.border ? variant.border : \"transparent\"};\r\n ${variant.backdrop && `backdrop-filter: ${variant.backdrop}`};\r\n @media (hover: hover) {\r\n &:hover {\r\n box-shadow: ${variant.withoutShadow ? \"none\" : theme.shadows.shadow1};\r\n ${variant.hover && `background-color: ${variant.hover}`};\r\n & .KUI-Button-text {\r\n ${variant.hoverColor && `color: ${variant.hoverColor}`};\r\n }\r\n svg path {\r\n ${variant.hoverColor && `fill: ${variant.hoverColor}`};\r\n }\r\n }\r\n &:active {\r\n ${variant.active && `background-color: ${variant.active}`};\r\n }\r\n }\r\n`\r\n\r\nconst circleButtonCSS = ({ isCircle, size }) =>\r\n isCircle &&\r\n css`\r\n padding: 0;\r\n border-radius: 50%;\r\n display: inline-flex;\r\n width: ${buttonSizes[size]}px;\r\n `\r\n\r\nconst buttonSettingsCSS = (props) => css`\r\n width: ${props.fullWidth ? \"100%\" : \"max-content\"};\r\n height: ${buttonSizes[props.size]}px;\r\n ${buttonVariantCSS(buttonVariants[props.variant])};\r\n ${props.border && `border-color: ${buttonBorders[props.border]}`};\r\n`\r\n\r\nconst StyledButton = styled.button`\r\n position: relative;\r\n border-radius: 66px;\r\n padding: 0 16px;\r\n transition: all linear 0.3s;\r\n width: max-content;\r\n text-align: center;\r\n cursor: pointer;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n ${buttonSettingsCSS};\r\n ${circleButtonCSS};\r\n & .KUI-Button-text,\r\n svg path {\r\n transition: all linear 0.3s;\r\n }\r\n &:disabled,\r\n &:disabled:hover,\r\n &:disabled:active {\r\n cursor: default;\r\n background-color: ${theme.palette.background.light3};\r\n box-shadow: none;\r\n & .KUI-Button-text {\r\n color: #a6aebc;\r\n }\r\n svg path {\r\n fill: #a6aebc;\r\n }\r\n }\r\n`\r\n\r\nconst StyledCircleButtonContainer = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n width: inherit;\r\n`\r\n\r\nconst iconContainerCSS = ({ withIcon }) =>\r\n withIcon &&\r\n css`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n `\r\n\r\nconst StyledContentContainer = styled.div`\r\n ${iconContainerCSS};\r\n`\r\n\r\nconst StyledStartIcon = styled.span`\r\n margin-right: 8px;\r\n display: flex;\r\n`\r\n\r\nconst StyledEndIcon = styled.span`\r\n margin-left: 8px;\r\n display: flex;\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst ErrorIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-label=\"error\"\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M7.99935 15.3334C12.0494 15.3334 15.3327 12.0502 15.3327 8.00008C15.3327 3.94999 12.0494 0.666748 7.99935 0.666748C3.94926 0.666748 0.666016 3.94999 0.666016 8.00008C0.666016 12.0502 3.94926 15.3334 7.99935 15.3334ZM7.99935 13.3334C10.9449 13.3334 13.3327 10.9456 13.3327 8.00008C13.3327 5.05456 10.9449 2.66675 7.99935 2.66675C5.05383 2.66675 2.66602 5.05456 2.66602 8.00008C2.66602 10.9456 5.05383 13.3334 7.99935 13.3334ZM9.52795 5.52868C9.78829 5.26833 10.2104 5.26833 10.4708 5.52868C10.7311 5.78903 10.7311 6.21114 10.4708 6.47149L8.94216 8.00008L10.4708 9.52868C10.7311 9.78903 10.7311 10.2111 10.4708 10.4715C10.2104 10.7318 9.78829 10.7318 9.52795 10.4715L7.99935 8.94289L6.47075 10.4715C6.2104 10.7318 5.78829 10.7318 5.52794 10.4715C5.2676 10.2111 5.2676 9.78903 5.52794 9.52868L7.05654 8.00008L5.52794 6.47149C5.2676 6.21114 5.2676 5.78903 5.52794 5.52868C5.78829 5.26833 6.2104 5.26833 6.47075 5.52868L7.99935 7.05727L9.52795 5.52868Z\"\r\n fill=\"#EB5757\"\r\n />\r\n </svg>\r\n)\r\n\r\nErrorIcon.defaultProps = {\r\n width: 16,\r\n height: 16,\r\n}\r\n\r\nErrorIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default ErrorIcon\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst WarningIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-label=\"warning\"\r\n >\r\n <path\r\n d=\"M6.99999 0.142883C10.7871 0.142883 13.8571 3.21293 13.8571 7.00002C13.8571 10.7871 10.7871 13.8572 6.99999 13.8572C3.2129 13.8572 0.142853 10.7871 0.142853 7.00002C0.142853 3.21293 3.2129 0.142883 6.99999 0.142883ZM6.99999 1.28574C3.84408 1.28574 1.28571 3.84411 1.28571 7.00002C1.28571 10.1559 3.84408 12.7143 6.99999 12.7143C10.1559 12.7143 12.7143 10.1559 12.7143 7.00002C12.7143 3.84411 10.1559 1.28574 6.99999 1.28574ZM6.99999 9.05717C7.44182 9.05717 7.79999 9.41534 7.79999 9.85717C7.79999 10.299 7.44182 10.6572 6.99999 10.6572C6.55817 10.6572 6.2 10.299 6.2 9.85717C6.2 9.41534 6.55817 9.05717 6.99999 9.05717ZM7.04206 3.57145C7.17783 3.57145 7.26306 3.59267 7.33756 3.63251C7.41206 3.67235 7.47052 3.73082 7.51036 3.80532C7.55021 3.87982 7.57142 3.96504 7.57142 4.10081V7.61352C7.57142 7.74929 7.55021 7.83452 7.51036 7.90902C7.47052 7.98352 7.41206 8.04198 7.33756 8.08182C7.26306 8.12166 7.17783 8.14288 7.04206 8.14288H6.95793C6.82215 8.14288 6.73693 8.12166 6.66243 8.08182C6.58793 8.04198 6.52947 7.98352 6.48962 7.90902C6.44978 7.83452 6.42857 7.74929 6.42857 7.61352V4.10081C6.42857 3.96504 6.44978 3.87982 6.48962 3.80532C6.52947 3.73082 6.58793 3.67235 6.66243 3.63251C6.73693 3.59267 6.82215 3.57145 6.95793 3.57145H7.04206Z\"\r\n fill=\"#ED713C\"\r\n />\r\n </svg>\r\n)\r\n\r\nWarningIcon.defaultProps = {\r\n width: 16,\r\n height: 16,\r\n}\r\n\r\nWarningIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default WarningIcon\r\n","import PropTypes from \"prop-types\"\r\nimport React from \"react\"\r\n\r\nconst SuccessIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-label=\"success\"\r\n >\r\n <path\r\n d=\"M6.99999 0.142883C10.7871 0.142883 13.8571 3.21293 13.8571 7.00002C13.8571 10.7871 10.7871 13.8572 6.99999 13.8572C3.2129 13.8572 0.142853 10.7871 0.142853 7.00002C0.142853 3.21293 3.2129 0.142883 6.99999 0.142883ZM6.99999 1.28574C3.84408 1.28574 1.28571 3.84411 1.28571 7.00002C1.28571 10.1559 3.84408 12.7143 6.99999 12.7143C10.1559 12.7143 12.7143 10.1559 12.7143 7.00002C12.7143 3.84411 10.1559 1.28574 6.99999 1.28574ZM9.45142 4.88003C9.67458 4.65687 10.0397 4.65687 10.2629 4.88003C10.486 5.10318 10.486 5.4683 10.2629 5.69145L6.2612 9.6898C6.03804 9.91296 5.67623 9.91296 5.45308 9.6898L3.45308 7.6898C3.22992 7.46664 3.22992 7.10484 3.45308 6.88168C3.67623 6.65852 4.03804 6.65852 4.2612 6.88168L5.85714 8.47762L9.45142 4.88003Z\"\r\n fill=\"#27AE60\"\r\n />\r\n </svg>\r\n)\r\n\r\nSuccessIcon.defaultProps = {\r\n width: 16,\r\n height: 16,\r\n}\r\n\r\nSuccessIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default SuccessIcon\r\n","import React from \"react\"\r\nimport ErrorIcon from \"../../icons/ErrorIcon\"\r\nimport WarningIcon from \"../../icons/WarningIcon\"\r\nimport SuccessIcon from \"../../icons/SuccessIcon\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst messageVariants = {\r\n error: {\r\n background: theme.palette.red.five,\r\n color: theme.palette.red.fiftyP,\r\n icon: <ErrorIcon />,\r\n },\r\n warning: {\r\n background: theme.palette.purple.ten,\r\n color: theme.palette.purple.seventy,\r\n icon: <WarningIcon />,\r\n },\r\n success: {\r\n background: theme.palette.green.five,\r\n color: theme.palette.green.fiftyP,\r\n icon: <SuccessIcon />,\r\n },\r\n}\r\n\r\nexport default messageVariants\r\n","import React, { useEffect, useRef, useState } from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport Caption from \"../Caption\"\nimport messageVariants from \"./variants\"\n\nfunction InputMessage(props) {\n const { msg, variant, className, ...otherProps } = props\n const messageRef = useRef(null)\n const [messageRefHeight, setMessageRefHeight] = useState(32)\n\n useEffect(() => {\n setMessageRefHeight(messageRef?.current?.clientHeight)\n }, [messageRef?.current?.clientHeight])\n\n return (\n <StyledMessage\n ref={messageRef}\n variant={messageVariants[variant]}\n className={classNames(\n \"KUI-InputMessage\",\n `KUI-InputMessage_${variant}`,\n className\n )}\n style={{ bottom: `-${messageRefHeight}px` }}\n {...otherProps}\n >\n <StyledIconWrapper className=\"KUI-InputMessage_icon\">\n {messageVariants[variant].icon}\n </StyledIconWrapper>\n <StyledTitle className=\"KUI-InputMessage_title\" size=\"xs\" weight={600}>\n {msg}\n </StyledTitle>\n </StyledMessage>\n )\n}\n\nInputMessage.defaultProps = {\n msg: \"\",\n className: \"\",\n variant: \"error\",\n}\n\nInputMessage.propTypes = {\n msg: PropTypes.string,\n className: PropTypes.string,\n variant: PropTypes.oneOf([\"error\", \"warning\", \"success\"]),\n}\n\nexport default InputMessage\n\nconst StyledTitle = styled(Caption)`\n padding-left: 8px;\n`\n\nconst messageVariantCSS = ({ variant }) => css`\n background-color: ${variant.background};\n svg {\n path {\n fill: ${variant.color};\n }\n }\n .KUI-InputMessage_title {\n color: ${variant.color};\n }\n`\n\nconst StyledMessage = styled.div`\n z-index: 2;\n position: absolute;\n left: 0px;\n bottom: 0;\n padding: 8px 15px;\n width: 100%;\n box-sizing: border-box;\n border-radius: 0 0 8px 8px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-shadow: 0px 0px 1px rgba(10, 31, 68, 0.08),\n 0px 3px 4px rgba(10, 31, 68, 0.1);\n ${messageVariantCSS};\n`\n\nconst StyledIconWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`\n","import React from \"react\"\r\n\r\nconst TextareaGrabIcon = (props) => (\r\n <svg\r\n width=\"9\"\r\n height=\"8\"\r\n viewBox=\"0 0 9 8\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M0.21967 7.80474C0.512563 8.06509 0.987437 8.06509 1.28033 7.80474L8.78033 1.13807C9.07322 0.877722 9.07322 0.455612 8.78033 0.195262C8.48744 -0.0650874 8.01256 -0.0650874 7.71967 0.195262L0.21967 6.86193C-0.0732233 7.12228 -0.0732233 7.54439 0.21967 7.80474ZM3.96957 7.80441C4.26246 8.06476 4.73734 8.06476 5.03023 7.80441L8.78021 4.47108C9.0731 4.21073 9.0731 3.78862 8.78021 3.52827C8.48732 3.26792 8.01245 3.26792 7.71956 3.52827L3.96957 6.8616C3.67668 7.12195 3.67668 7.54406 3.96957 7.80441Z\"\r\n fill=\"#EAECEF\"\r\n />\r\n </svg>\r\n)\r\n\r\nexport default TextareaGrabIcon\r\n","import React, { forwardRef, useEffect, useRef, useState } from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport Caption from \"../Caption\"\nimport InputMessage from \"../InputMessage\"\nimport TextareaGrabIcon from \"../../icons/TextareaGrabIcon\"\nimport { theme } from \"../../theme\"\n\nconst { palette } = theme\n\nconst Input = forwardRef((props, ref) => {\n const {\n isTextArea,\n inputRef: inputRefProp,\n className,\n inputStyles,\n labelStyles,\n label,\n startIcon,\n endIcon,\n messageClassName,\n labelInlineStyles,\n message,\n messageVariant,\n value: inputValue,\n type,\n rows,\n placeholder,\n ...inputProps\n } = props\n const [isFilled, setIsFilled] = useState(false)\n const inputRef = useRef(null)\n const isInvalid = !!message && messageVariant !== \"success\"\n\n const forwardedRef = (elem) => {\n if (inputRefProp) {\n inputRefProp.current = elem\n }\n if (ref) {\n if (typeof ref === \"function\") {\n ref(elem)\n } else {\n ref.current = elem\n }\n }\n inputRef.current = elem\n }\n\n useEffect(() => {\n if (inputRef.current?.value) {\n setIsFilled(true)\n } else {\n setIsFilled(false)\n }\n }, [inputRef])\n\n useEffect(() => {\n if (!inputValue) {\n setIsFilled(false)\n } else {\n setIsFilled(true)\n }\n }, [inputValue])\n\n const handleChange = (e) => {\n if (e.target.value) {\n setIsFilled(true)\n } else {\n setIsFilled(false)\n }\n if (inputProps.onInput) {\n inputProps.onInput(e)\n }\n }\n\n const commonProps = {\n ref: forwardedRef,\n value: inputValue,\n onInput: handleChange,\n withMessage: !!message,\n messageVariant: messageVariant || \"error\",\n withLabel: !!label,\n placeholder,\n ...inputProps,\n }\n\n return (\n <StyledContainer\n className={classNames(\n \"KUI-Input_container\",\n !isTextArea && \"KUI-Input_InputContainer\",\n className\n )}\n >\n {startIcon && startIcon}\n {isTextArea ? (\n <StyledTextarea\n rows={rows}\n className={classNames(\n \"KUI-Input\",\n \"KUI-Textarea\",\n inputStyles,\n isInvalid && \"KUI-Input_invalid\"\n )}\n {...commonProps}\n />\n ) : (\n <StyledInput\n type={type}\n className={classNames(\n \"KUI-Input\",\n inputStyles,\n isInvalid && \"KUI-Input_invalid\"\n )}\n {...commonProps}\n />\n )}\n <StyledInputLabel\n size=\"s\"\n color=\"fiftyP\"\n active={isFilled || placeholder}\n className={classNames(\n \"KUI-Input_label\",\n (isFilled || placeholder) && \"KUI-Input_label-active\",\n labelStyles\n )}\n style={labelInlineStyles}\n >\n {label}\n </StyledInputLabel>\n {isTextArea && <StyledTextareaIcon className=\"KUI-Textarea_icon\" />}\n {endIcon && endIcon}\n {!!message && (\n <InputMessage\n variant={messageVariant || \"error\"}\n msg={message}\n className={messageClassName}\n />\n )}\n </StyledContainer>\n )\n})\n\nInput.defaultProps = {\n disabled: false,\n isTextArea: false,\n label: \"\",\n rows: 4,\n type: \"text\",\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n isTextArea: PropTypes.bool,\n label: PropTypes.string,\n message: PropTypes.string,\n rows: PropTypes.number,\n type: PropTypes.oneOf([\n \"text\",\n \"number\",\n \"password\",\n \"phone\",\n \"email\",\n \"phone\",\n ]),\n}\n\nInput.displayName = \"Input\"\n\nexport default Input\n\nconst StyledContainer = styled.div`\n position: relative;\n &.KUI-Input_InputContainer {\n height: 56px;\n }\n`\n\nconst StyledTextareaIcon = styled(TextareaGrabIcon)`\n display: block;\n width: 9px;\n height: 8px;\n position: absolute;\n right: 4px;\n bottom: calc(15% * (14 / 16) + 8px);\n pointer-events: none;\n cursor: none;\n`\n\nconst labelActiveCSS = css`\n font-size: 12px;\n top: 6px;\n & + div.KUI-InputAdornment_corner-label p {\n opacity: 1;\n }\n`\n\nconst StyledInputLabel = styled(Caption)`\n position: absolute;\n top: 19px;\n left: 16px;\n transition: top ease-out 0.2s, font-size ease-out 0.2s;\n user-select: none;\n pointer-events: none;\n ${({ active }) => active && labelActiveCSS};\n`\n\nconst inputStates = {\n error: palette.red.fiftyP,\n warning: palette.purple.seventy,\n success: palette.green.fiftyP,\n}\n\nconst inputStateCSS = (messageVariant) => css`\n border-radius: 8px 8px 0px 0px;\n border-color: ${inputStates[messageVariant]} !important;\n color: ${inputStates[messageVariant]};\n`\n\nconst inputCSS = ({ withMessage, messageVariant, withLabel }) => css`\n box-sizing: border-box;\n border: 1.5px solid ${palette.grey.fifteenB};\n border-radius: 8px;\n background-color: ${palette.grey.zero};\n caret-color: ${palette.brand.main};\n color: ${palette.grey.seventy};\n font-weight: 500;\n padding: ${withLabel ? \"27px 8px 10px 17px\" : \"16px 8px 16px 17px\"};\n font-family: \"Inter\", sans-serif;\n -moz-appearance: textfield;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n font-size: 16px;\n transform: scale(calc(14 / 16));\n transform-origin: left top;\n width: calc(100% * (16 / 14));\n margin-right: -14%;\n &:-webkit-autofill {\n box-shadow: inset 0 0 0 1000px #fff;\n }\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n &:focus {\n outline: none;\n border-color: ${palette.brand.main};\n & + .KUI-Input_label {\n ${labelActiveCSS}\n }\n }\n ${withMessage && inputStateCSS(messageVariant)};\n &:disabled {\n background-color: ${palette.background.light1};\n }\n`\n\nconst StyledInput = styled.input`\n height: 64px;\n ${inputCSS};\n`\n\nconst StyledTextarea = styled.textarea`\n resize: vertical;\n max-height: 168px;\n min-height: 64px;\n height: auto;\n &::-webkit-resizer {\n display: none;\n }\n ${inputCSS};\n`\n","import React, { forwardRef, useEffect, useRef, useState } from \"react\"\nimport classNames from \"classnames\"\nimport PropTypes from \"prop-types\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport Input from \"../Input\"\nimport Caption from \"../Caption\"\n\nconst InputWithAdornments = forwardRef((props, ref) => {\n const { cornerLabel, startIcon, endIcon, ...inputProps } = props\n\n const startIconRef = useRef(null)\n const endIconRef = useRef(null)\n const [startIconWidth, setStartIconWidth] = useState(0)\n const [endIconWidth, setEndIconWidth] = useState(0)\n\n const inputStyle = {\n paddingLeft: startIconWidth > 0 ? (startIconWidth + 20) * (16 / 14) : 16,\n paddingRight: endIconWidth > 0 ? endIconWidth + 24 : 8,\n }\n\n const labelStyle = {\n left: startIconWidth > 0 ? startIconWidth + 22 : 16,\n }\n\n useEffect(() => {\n setStartIconWidth(startIconRef?.current?.clientWidth)\n }, [startIconRef?.current?.clientWidth])\n\n useEffect(() => {\n setEndIconWidth(endIconRef?.current?.clientWidth)\n }, [endIconRef?.current?.clientWidth])\n\n return (\n <Input\n ref={ref}\n startIcon={\n startIcon && (\n <StyledStartIcon\n ref={startIconRef}\n className=\"KUI-InputAdornment_start-icon\"\n >\n {startIcon}\n </StyledStartIcon>\n )\n }\n endIcon={\n (endIcon || cornerLabel) && (\n <StyledEndIcon\n ref={endIconRef}\n isCornerLabel={!!cornerLabel}\n className={classNames(\n \"KUI-InputAdornment_end-icon\",\n cornerLabel && \"KUI-InputAdornment_corner-label\"\n )}\n >\n {cornerLabel ? (\n <StyledCornerLabel size=\"s\" weight={500} color=\"fiftyP\">\n {cornerLabel}\n </StyledCornerLabel>\n ) : (\n endIcon\n )}\n </StyledEndIcon>\n )\n }\n style={inputStyle}\n labelInlineStyles={labelStyle}\n {...inputProps}\n />\n )\n})\n\nInputWithAdornments.defaultProps = {\n cornerLabel: null,\n startIcon: null,\n endIcon: null,\n}\n\nInputWithAdornments.propTypes = {\n label: PropTypes.string,\n errorMessage: PropTypes.string,\n cornerLabel: PropTypes.string,\n disabled: PropTypes.bool,\n startIcon: PropTypes.element,\n endIcon: PropTypes.element,\n type: PropTypes.oneOf([\"text\", \"number\", \"password\"]),\n}\n\nInputWithAdornments.displayName = \"InputWithAdornments\"\n\nexport default InputWithAdornments\n\nconst cornerLabelCSS = css`\n align-items: flex-end;\n bottom: 12px;\n right: 12px;\n`\n\nconst StyledIcon = styled.div`\n position: absolute;\n top: 8px;\n bottom: 8px;\n display: flex;\n align-items: center;\n z-index: 1;\n`\n\nconst StyledStartIcon = styled(StyledIcon)`\n left: 8px;\n`\n\nconst StyledEndIcon = styled(StyledIcon)`\n right: 8px;\n z-index: 0;\n ${({ isCornerLabel }) => isCornerLabel && cornerLabelCSS};\n`\n\nconst StyledCornerLabel = styled(Caption)`\n transition: all ease-out 0.3s;\n opacity: 0;\n`\n","\"use strict\";function _interopDefault(e){return e&&\"object\"==typeof e&&\"default\"in e?e[\"default\"]:e}var React=_interopDefault(require(\"react\")),reactDom=require(\"react-dom\");function _defaults2(e,t){for(var n=Object.getOwnPropertyNames(t),a=0;a<n.length;a++){var i=n[a],r=Object.getOwnPropertyDescriptor(t,i);r&&r.configurable&&e[i]===undefined&&Object.defineProperty(e,i,r)}return e}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),_defaults2(e.prototype.constructor=e,t)}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],0<=t.indexOf(n)||(i[n]=e[n]);return i}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}var invariant=function(e,t,n,a,i,r,o,s){if(!e){var l;if(t===undefined)l=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var u=[n,a,i,r,o,s],c=0;(l=new Error(t.replace(/%s/g,function(){return u[c++]}))).name=\"Invariant Violation\"}throw l.framesToPop=1,l}},invariant_1=invariant;function setInputSelection(e,t,n){if(\"selectionStart\"in e&&\"selectionEnd\"in e)e.selectionStart=t,e.selectionEnd=n;else{var a=e.createTextRange();a.collapse(!0),a.moveStart(\"character\",t),a.moveEnd(\"character\",n-t),a.select()}}function getInputSelection(e){var t=0,n=0;if(\"selectionStart\"in e&&\"selectionEnd\"in e)t=e.selectionStart,n=e.selectionEnd;else{var a=document.selection.createRange();a.parentElement()===e&&(t=-a.moveStart(\"character\",-e.value.length),n=-a.moveEnd(\"character\",-e.value.length))}return{start:t,end:n,length:n-t}}var defaultFormatChars={9:\"[0-9]\",a:\"[A-Za-z]\",\"*\":\"[A-Za-z0-9]\"},defaultMaskChar=\"_\";function parseMask(e,t,n){var a=\"\",i=\"\",r=null,o=[];if(t===undefined&&(t=defaultMaskChar),null==n&&(n=defaultFormatChars),!e||\"string\"!=typeof e)return{maskChar:t,formatChars:n,mask:null,prefix:null,lastEditablePosition:null,permanents:[]};var s=!1;return e.split(\"\").forEach(function(e){s=!s&&\"\\\\\"===e||(s||!n[e]?(o.push(a.length),a.length===o.length-1&&(i+=e)):r=a.length+1,a+=e,!1)}),{maskChar:t,formatChars:n,prefix:i,mask:a,lastEditablePosition:r,permanents:o}}function isPermanentCharacter(e,t){return-1!==e.permanents.indexOf(t)}function isAllowedCharacter(e,t,n){var a=e.mask,i=e.formatChars;if(!n)return!1;if(isPermanentCharacter(e,t))return a[t]===n;var r=i[a[t]];return new RegExp(r).test(n)}function isEmpty(n,e){return e.split(\"\").every(function(e,t){return isPermanentCharacter(n,t)||!isAllowedCharacter(n,t,e)})}function getFilledLength(e,t){var n=e.maskChar,a=e.prefix;if(!n){for(;t.length>a.length&&isPermanentCharacter(e,t.length-1);)t=t.slice(0,t.length-1);return t.length}for(var i=a.length,r=t.length;r>=a.length;r--){var o=t[r];if(!isPermanentCharacter(e,r)&&isAllowedCharacter(e,r,o)){i=r+1;break}}return i}function isFilled(e,t){return getFilledLength(e,t)===e.mask.length}function formatValue(e,t){var n=e.maskChar,a=e.mask,i=e.prefix;if(!n){for((t=insertString(e,\"\",t,0)).length<i.length&&(t=i);t.length<a.length&&isPermanentCharacter(e,t.length);)t+=a[t.length];return t}if(t)return insertString(e,formatValue(e,\"\"),t,0);for(var r=0;r<a.length;r++)isPermanentCharacter(e,r)?t+=a[r]:t+=n;return t}function clearRange(n,e,a,t){var i=a+t,r=n.maskChar,o=n.mask,s=n.prefix,l=e.split(\"\");if(r)return l.map(function(e,t){return t<a||i<=t?e:isPermanentCharacter(n,t)?o[t]:r}).join(\"\");for(var u=i;u<l.length;u++)isPermanentCharacter(n,u)&&(l[u]=\"\");return a=Math.max(s.length,a),l.splice(a,i-a),e=l.join(\"\"),formatValue(n,e)}function insertString(r,o,e,s){var l=r.mask,u=r.maskChar,c=r.prefix,t=e.split(\"\"),h=isFilled(r,o);return!u&&s>o.length&&(o+=l.slice(o.length,s)),t.every(function(e){for(;i=e,isPermanentCharacter(r,a=s)&&i!==l[a];){if(s>=o.length&&(o+=l[s]),t=e,n=s,u&&isPermanentCharacter(r,n)&&t===u)return!0;if(++s>=l.length)return!1}var t,n,a,i;return!isAllowedCharacter(r,s,e)&&e!==u||(s<o.length?o=u||h||s<c.length?o.slice(0,s)+e+o.slice(s+1):(o=o.slice(0,s)+e+o.slice(s),formatValue(r,o)):u||(o+=e),++s<l.length)}),o}function getInsertStringLength(a,e,t,i){var r=a.mask,o=a.maskChar,n=t.split(\"\"),s=i;return n.every(function(e){for(;n=e,isPermanentCharacter(a,t=i)&&n!==r[t];)if(++i>=r.length)return!1;var t,n;return(isAllowedCharacter(a,i,e)||e===o)&&i++,i<r.length}),i-s}function getLeftEditablePosition(e,t){for(var n=t;0<=n;--n)if(!isPermanentCharacter(e,n))return n;return null}function getRightEditablePosition(e,t){for(var n=e.mask,a=t;a<n.length;++a)if(!isPermanentCharacter(e,a))return a;return null}function getStringValue(e){return e||0===e?e+\"\":\"\"}function processChange(e,t,n,a,i){var r=e.mask,o=e.prefix,s=e.lastEditablePosition,l=t,u=\"\",c=0,h=0,f=Math.min(i.start,n.start);if(n.end>i.start?h=(c=getInsertStringLength(e,a,u=l.slice(i.start,n.end),f))?i.length:0:l.length<a.length&&(h=a.length-l.length),l=a,h){if(1===h&&!i.length)f=i.start===n.start?getRightEditablePosition(e,n.start):getLeftEditablePosition(e,n.start);l=clearRange(e,l,f,h)}return l=insertString(e,l,u,f),(f+=c)>=r.length?f=r.length:f<o.length&&!c?f=o.length:f>=o.length&&f<s&&c&&(f=getRightEditablePosition(e,f)),u||(u=null),{value:l=formatValue(e,l),enteredString:u,selection:{start:f,end:f}}}function isWindowsPhoneBrowser(){var e=new RegExp(\"windows\",\"i\"),t=new RegExp(\"phone\",\"i\"),n=navigator.userAgent;return e.test(n)&&t.test(n)}function isFunction(e){return\"function\"==typeof e}function getRequestAnimationFrame(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame}function getCancelAnimationFrame(){return window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame}function defer(e){return(!!getCancelAnimationFrame()?getRequestAnimationFrame():function(){return setTimeout(e,1e3/60)})(e)}function cancelDefer(e){(getCancelAnimationFrame()||clearTimeout)(e)}var InputElement=function(c){function e(e){var f=c.call(this,e)||this;f.focused=!1,f.mounted=!1,f.previousSelection=null,f.selectionDeferId=null,f.saveSelectionLoopDeferId=null,f.saveSelectionLoop=function(){f.previousSelection=f.getSelection(),f.saveSelectionLoopDeferId=defer(f.saveSelectionLoop)},f.runSaveSelectionLoop=function(){null===f.saveSelectionLoopDeferId&&f.saveSelectionLoop()},f.stopSaveSelectionLoop=function(){null!==f.saveSelectionLoopDeferId&&(cancelDefer(f.saveSelectionLoopDeferId),f.saveSelectionLoopDeferId=null,f.previousSelection=null)},f.getInputDOMNode=function(){if(!f.mounted)return null;var e=reactDom.findDOMNode(_assertThisInitialized(_assertThisInitialized(f))),t=\"undefined\"!=typeof window&&e instanceof window.Element;if(e&&!t)return null;if(\"INPUT\"!==e.nodeName&&(e=e.querySelector(\"input\")),!e)throw new Error(\"react-input-mask: inputComponent doesn't contain input node\");return e},f.getInputValue=function(){var e=f.getInputDOMNode();return e?e.value:null},f.setInputValue=function(e){var t=f.getInputDOMNode();t&&(f.value=e,t.value=e)},f.setCursorToEnd=function(){var e=getFilledLength(f.maskOptions,f.value),t=getRightEditablePosition(f.maskOptions,e);null!==t&&f.setCursorPosition(t)},f.setSelection=function(e,t,n){void 0===n&&(n={});var a=f.getInputDOMNode(),i=f.isFocused();a&&i&&(n.deferred||setInputSelection(a,e,t),null!==f.selectionDeferId&&cancelDefer(f.selectionDeferId),f.selectionDeferId=defer(function(){f.selectionDeferId=null,setInputSelection(a,e,t)}),f.previousSelection={start:e,end:t,length:Math.abs(t-e)})},f.getSelection=function(){return getInputSelection(f.getInputDOMNode())},f.getCursorPosition=function(){return f.getSelection().start},f.setCursorPosition=function(e){f.setSelection(e,e)},f.isFocused=function(){return f.focused},f.getBeforeMaskedValueChangeConfig=function(){var e=f.maskOptions,t=e.mask,n=e.maskChar,a=e.permanents,i=e.formatChars;return{mask:t,maskChar:n,permanents:a,alwaysShowMask:!!f.props.alwaysShowMask,formatChars:i}},f.isInputAutofilled=function(e,t,n,a){var i=f.getInputDOMNode();try{if(i.matches(\":-webkit-autofill\"))return!0}catch(r){}return!f.focused||a.end<n.length&&t.end===e.length},f.onChange=function(e){var t=_assertThisInitialized(_assertThisInitialized(f)).beforePasteState,n=_assertThisInitialized(_assertThisInitialized(f)).previousSelection,a=f.props.beforeMaskedValueChange,i=f.getInputValue(),r=f.value,o=f.getSelection();f.isInputAutofilled(i,o,r,n)&&(r=formatValue(f.maskOptions,\"\"),n={start:0,end:0,length:0}),t&&(n=t.selection,r=t.value,o={start:n.start+i.length,end:n.start+i.length,length:0},i=r.slice(0,n.start)+i+r.slice(n.end),f.beforePasteState=null);var s=processChange(f.maskOptions,i,o,r,n),l=s.enteredString,u=s.selection,c=s.value;if(isFunction(a)){var h=a({value:c,selection:u},{value:r,selection:n},l,f.getBeforeMaskedValueChangeConfig());c=h.value,u=h.selection}f.setInputValue(c),isFunction(f.props.onChange)&&f.props.onChange(e),f.isWindowsPhoneBrowser?f.setSelection(u.start,u.end,{deferred:!0}):f.setSelection(u.start,u.end)},f.onFocus=function(e){var t=f.props.beforeMaskedValueChange,n=f.maskOptions,a=n.mask,i=n.prefix;if(f.focused=!0,f.mounted=!0,a){if(f.value)getFilledLength(f.maskOptions,f.value)<f.maskOptions.mask.length&&f.setCursorToEnd();else{var r=formatValue(f.maskOptions,i),o=formatValue(f.maskOptions,r),s=getFilledLength(f.maskOptions,o),l=getRightEditablePosition(f.maskOptions,s),u={start:l,end:l};if(isFunction(t)){var c=t({value:o,selection:u},{value:f.value,selection:null},null,f.getBeforeMaskedValueChangeConfig());o=c.value,u=c.selection}var h=o!==f.getInputValue();h&&f.setInputValue(o),h&&isFunction(f.props.onChange)&&f.props.onChange(e),f.setSelection(u.start,u.end)}f.runSaveSelectionLoop()}isFunction(f.props.onFocus)&&f.props.onFocus(e)},f.onBlur=function(e){var t=f.props.beforeMaskedValueChange,n=f.maskOptions.mask;if(f.stopSaveSelectionLoop(),f.focused=!1,n&&!f.props.alwaysShowMask&&isEmpty(f.maskOptions,f.value)){var a=\"\";if(isFunction(t))a=t({value:a,selection:null},{value:f.value,selection:f.previousSelection},null,f.getBeforeMaskedValueChangeConfig()).value;var i=a!==f.getInputValue();i&&f.setInputValue(a),i&&isFunction(f.props.onChange)&&f.props.onChange(e)}isFunction(f.props.onBlur)&&f.props.onBlur(e)},f.onMouseDown=function(e){if(!f.focused&&document.addEventListener){f.mouseDownX=e.clientX,f.mouseDownY=e.clientY,f.mouseDownTime=(new Date).getTime();var r=function r(e){if(document.removeEventListener(\"mouseup\",r),f.focused){var t=Math.abs(e.clientX-f.mouseDownX),n=Math.abs(e.clientY-f.mouseDownY),a=Math.max(t,n),i=(new Date).getTime()-f.mouseDownTime;(a<=10&&i<=200||a<=5&&i<=300)&&f.setCursorToEnd()}};document.addEventListener(\"mouseup\",r)}isFunction(f.props.onMouseDown)&&f.props.onMouseDown(e)},f.onPaste=function(e){isFunction(f.props.onPaste)&&f.props.onPaste(e),e.defaultPrevented||(f.beforePasteState={value:f.getInputValue(),selection:f.getSelection()},f.setInputValue(\"\"))},f.handleRef=function(e){null==f.props.children&&isFunction(f.props.inputRef)&&f.props.inputRef(e)};var t=e.mask,n=e.maskChar,a=e.formatChars,i=e.alwaysShowMask,r=e.beforeMaskedValueChange,o=e.defaultValue,s=e.value;f.maskOptions=parseMask(t,n,a),null==o&&(o=\"\"),null==s&&(s=o);var l=getStringValue(s);if(f.maskOptions.mask&&(i||l)&&(l=formatValue(f.maskOptions,l),isFunction(r))){var u=e.value;null==e.value&&(u=o),l=r({value:l,selection:null},{value:u=getStringValue(u),selection:null},null,f.getBeforeMaskedValueChangeConfig()).value}return f.value=l,f}_inheritsLoose(e,c);var t=e.prototype;return t.componentDidMount=function(){this.mounted=!0,this.getInputDOMNode()&&(this.isWindowsPhoneBrowser=isWindowsPhoneBrowser(),this.maskOptions.mask&&this.getInputValue()!==this.value&&this.setInputValue(this.value))},t.componentDidUpdate=function(){var e=this.previousSelection,t=this.props,n=t.beforeMaskedValueChange,a=t.alwaysShowMask,i=t.mask,r=t.maskChar,o=t.formatChars,s=this.maskOptions,l=a||this.isFocused(),u=null!=this.props.value,c=u?getStringValue(this.props.value):this.value,h=e?e.start:null;if(this.maskOptions=parseMask(i,r,o),this.maskOptions.mask){!s.mask&&this.isFocused()&&this.runSaveSelectionLoop();var f=this.maskOptions.mask&&this.maskOptions.mask!==s.mask;if(s.mask||u||(c=this.getInputValue()),(f||this.maskOptions.mask&&(c||l))&&(c=formatValue(this.maskOptions,c)),f){var p=getFilledLength(this.maskOptions,c);(null===h||p<h)&&(h=isFilled(this.maskOptions,c)?p:getRightEditablePosition(this.maskOptions,p))}!this.maskOptions.mask||!isEmpty(this.maskOptions,c)||l||u&&this.props.value||(c=\"\");var d={start:h,end:h};if(isFunction(n)){var m=n({value:c,selection:d},{value:this.value,selection:this.previousSelection},null,this.getBeforeMaskedValueChangeConfig());c=m.value,d=m.selection}this.value=c;var g=this.getInputValue()!==this.value;g?(this.setInputValue(this.value),this.forceUpdate()):f&&this.forceUpdate();var v=!1;null!=d.start&&null!=d.end&&(v=!e||e.start!==d.start||e.end!==d.end),(v||g)&&this.setSelection(d.start,d.end)}else s.mask&&(this.stopSaveSelectionLoop(),this.forceUpdate())},t.componentWillUnmount=function(){this.mounted=!1,null!==this.selectionDeferId&&cancelDefer(this.selectionDeferId),this.stopSaveSelectionLoop()},t.render=function(){var t,e=this.props,n=(e.mask,e.alwaysShowMask,e.maskChar,e.formatChars,e.inputRef,e.beforeMaskedValueChange,e.children),a=_objectWithoutPropertiesLoose(e,[\"mask\",\"alwaysShowMask\",\"maskChar\",\"formatChars\",\"inputRef\",\"beforeMaskedValueChange\",\"children\"]);if(n){isFunction(n)||invariant_1(!1);var i=[\"onChange\",\"onPaste\",\"onMouseDown\",\"onFocus\",\"onBlur\",\"value\",\"disabled\",\"readOnly\"],r=_extends({},a);i.forEach(function(e){return delete r[e]}),t=n(r),i.filter(function(e){return null!=t.props[e]&&t.props[e]!==a[e]}).length&&invariant_1(!1)}else t=React.createElement(\"input\",_extends({ref:this.handleRef},a));var o={onFocus:this.onFocus,onBlur:this.onBlur};return this.maskOptions.mask&&(a.disabled||a.readOnly||(o.onChange=this.onChange,o.onPaste=this.onPaste,o.onMouseDown=this.onMouseDown),null!=a.value&&(o.value=this.value)),t=React.cloneElement(t,o)},e}(React.Component);module.exports=InputElement;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar NODE_ENV = process.env.NODE_ENV;\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = _interopDefault(require('react'));\nvar reactDom = require('react-dom');\nvar invariant = _interopDefault(require('invariant'));\nvar warning = _interopDefault(require('warning'));\n\nfunction _defaults2(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _defaults2(subClass, superClass);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction setInputSelection(input, start, end) {\n if ('selectionStart' in input && 'selectionEnd' in input) {\n input.selectionStart = start;\n input.selectionEnd = end;\n } else {\n var range = input.createTextRange();\n range.collapse(true);\n range.moveStart('character', start);\n range.moveEnd('character', end - start);\n range.select();\n }\n}\nfunction getInputSelection(input) {\n var start = 0;\n var end = 0;\n\n if ('selectionStart' in input && 'selectionEnd' in input) {\n start = input.selectionStart;\n end = input.selectionEnd;\n } else {\n var range = document.selection.createRange();\n\n if (range.parentElement() === input) {\n start = -range.moveStart('character', -input.value.length);\n end = -range.moveEnd('character', -input.value.length);\n }\n }\n\n return {\n start: start,\n end: end,\n length: end - start\n };\n}\n\nvar defaultFormatChars = {\n '9': '[0-9]',\n 'a': '[A-Za-z]',\n '*': '[A-Za-z0-9]'\n};\nvar defaultMaskChar = '_';\n\nfunction parseMask (mask, maskChar, formatChars) {\n var parsedMaskString = '';\n var prefix = '';\n var lastEditablePosition = null;\n var permanents = [];\n\n if (maskChar === undefined) {\n maskChar = defaultMaskChar;\n }\n\n if (formatChars == null) {\n formatChars = defaultFormatChars;\n }\n\n if (!mask || typeof mask !== 'string') {\n return {\n maskChar: maskChar,\n formatChars: formatChars,\n mask: null,\n prefix: null,\n lastEditablePosition: null,\n permanents: []\n };\n }\n\n var isPermanent = false;\n mask.split('').forEach(function (character) {\n if (!isPermanent && character === '\\\\') {\n isPermanent = true;\n } else {\n if (isPermanent || !formatChars[character]) {\n permanents.push(parsedMaskString.length);\n\n if (parsedMaskString.length === permanents.length - 1) {\n prefix += character;\n }\n } else {\n lastEditablePosition = parsedMaskString.length + 1;\n }\n\n parsedMaskString += character;\n isPermanent = false;\n }\n });\n return {\n maskChar: maskChar,\n formatChars: formatChars,\n prefix: prefix,\n mask: parsedMaskString,\n lastEditablePosition: lastEditablePosition,\n permanents: permanents\n };\n}\n\n/* eslint no-use-before-define: [\"error\", { functions: false }] */\nfunction isPermanentCharacter(maskOptions, pos) {\n return maskOptions.permanents.indexOf(pos) !== -1;\n}\nfunction isAllowedCharacter(maskOptions, pos, character) {\n var mask = maskOptions.mask,\n formatChars = maskOptions.formatChars;\n\n if (!character) {\n return false;\n }\n\n if (isPermanentCharacter(maskOptions, pos)) {\n return mask[pos] === character;\n }\n\n var ruleChar = mask[pos];\n var charRule = formatChars[ruleChar];\n return new RegExp(charRule).test(character);\n}\nfunction isEmpty(maskOptions, value) {\n return value.split('').every(function (character, i) {\n return isPermanentCharacter(maskOptions, i) || !isAllowedCharacter(maskOptions, i, character);\n });\n}\nfunction getFilledLength(maskOptions, value) {\n var maskChar = maskOptions.maskChar,\n prefix = maskOptions.prefix;\n\n if (!maskChar) {\n while (value.length > prefix.length && isPermanentCharacter(maskOptions, value.length - 1)) {\n value = value.slice(0, value.length - 1);\n }\n\n return value.length;\n }\n\n var filledLength = prefix.length;\n\n for (var i = value.length; i >= prefix.length; i--) {\n var character = value[i];\n var isEnteredCharacter = !isPermanentCharacter(maskOptions, i) && isAllowedCharacter(maskOptions, i, character);\n\n if (isEnteredCharacter) {\n filledLength = i + 1;\n break;\n }\n }\n\n return filledLength;\n}\nfunction isFilled(maskOptions, value) {\n return getFilledLength(maskOptions, value) === maskOptions.mask.length;\n}\nfunction formatValue(maskOptions, value) {\n var maskChar = maskOptions.maskChar,\n mask = maskOptions.mask,\n prefix = maskOptions.prefix;\n\n if (!maskChar) {\n value = insertString(maskOptions, '', value, 0);\n\n if (value.length < prefix.length) {\n value = prefix;\n }\n\n while (value.length < mask.length && isPermanentCharacter(maskOptions, value.length)) {\n value += mask[value.length];\n }\n\n return value;\n }\n\n if (value) {\n var emptyValue = formatValue(maskOptions, '');\n return insertString(maskOptions, emptyValue, value, 0);\n }\n\n for (var i = 0; i < mask.length; i++) {\n if (isPermanentCharacter(maskOptions, i)) {\n value += mask[i];\n } else {\n value += maskChar;\n }\n }\n\n return value;\n}\nfunction clearRange(maskOptions, value, start, len) {\n var end = start + len;\n var maskChar = maskOptions.maskChar,\n mask = maskOptions.mask,\n prefix = maskOptions.prefix;\n var arrayValue = value.split('');\n\n if (!maskChar) {\n // remove any permanent chars after clear range, they will be added back by formatValue\n for (var i = end; i < arrayValue.length; i++) {\n if (isPermanentCharacter(maskOptions, i)) {\n arrayValue[i] = '';\n }\n }\n\n start = Math.max(prefix.length, start);\n arrayValue.splice(start, end - start);\n value = arrayValue.join('');\n return formatValue(maskOptions, value);\n }\n\n return arrayValue.map(function (character, i) {\n if (i < start || i >= end) {\n return character;\n }\n\n if (isPermanentCharacter(maskOptions, i)) {\n return mask[i];\n }\n\n return maskChar;\n }).join('');\n}\nfunction insertString(maskOptions, value, insertStr, insertPosition) {\n var mask = maskOptions.mask,\n maskChar = maskOptions.maskChar,\n prefix = maskOptions.prefix;\n var arrayInsertStr = insertStr.split('');\n var isInputFilled = isFilled(maskOptions, value);\n\n var isUsablePosition = function isUsablePosition(pos, character) {\n return !isPermanentCharacter(maskOptions, pos) || character === mask[pos];\n };\n\n var isUsableCharacter = function isUsableCharacter(character, pos) {\n return !maskChar || !isPermanentCharacter(maskOptions, pos) || character !== maskChar;\n };\n\n if (!maskChar && insertPosition > value.length) {\n value += mask.slice(value.length, insertPosition);\n }\n\n arrayInsertStr.every(function (insertCharacter) {\n while (!isUsablePosition(insertPosition, insertCharacter)) {\n if (insertPosition >= value.length) {\n value += mask[insertPosition];\n }\n\n if (!isUsableCharacter(insertCharacter, insertPosition)) {\n return true;\n }\n\n insertPosition++; // stop iteration if maximum value length reached\n\n if (insertPosition >= mask.length) {\n return false;\n }\n }\n\n var isAllowed = isAllowedCharacter(maskOptions, insertPosition, insertCharacter) || insertCharacter === maskChar;\n\n if (!isAllowed) {\n return true;\n }\n\n if (insertPosition < value.length) {\n if (maskChar || isInputFilled || insertPosition < prefix.length) {\n value = value.slice(0, insertPosition) + insertCharacter + value.slice(insertPosition + 1);\n } else {\n value = value.slice(0, insertPosition) + insertCharacter + value.slice(insertPosition);\n value = formatValue(maskOptions, value);\n }\n } else if (!maskChar) {\n value += insertCharacter;\n }\n\n insertPosition++; // stop iteration if maximum value length reached\n\n return insertPosition < mask.length;\n });\n return value;\n}\nfunction getInsertStringLength(maskOptions, value, insertStr, insertPosition) {\n var mask = maskOptions.mask,\n maskChar = maskOptions.maskChar;\n var arrayInsertStr = insertStr.split('');\n var initialInsertPosition = insertPosition;\n\n var isUsablePosition = function isUsablePosition(pos, character) {\n return !isPermanentCharacter(maskOptions, pos) || character === mask[pos];\n };\n\n arrayInsertStr.every(function (insertCharacter) {\n while (!isUsablePosition(insertPosition, insertCharacter)) {\n insertPosition++; // stop iteration if maximum value length reached\n\n if (insertPosition >= mask.length) {\n return false;\n }\n }\n\n var isAllowed = isAllowedCharacter(maskOptions, insertPosition, insertCharacter) || insertCharacter === maskChar;\n\n if (isAllowed) {\n insertPosition++;\n } // stop iteration if maximum value length reached\n\n\n return insertPosition < mask.length;\n });\n return insertPosition - initialInsertPosition;\n}\nfunction getLeftEditablePosition(maskOptions, pos) {\n for (var i = pos; i >= 0; --i) {\n if (!isPermanentCharacter(maskOptions, i)) {\n return i;\n }\n }\n\n return null;\n}\nfunction getRightEditablePosition(maskOptions, pos) {\n var mask = maskOptions.mask;\n\n for (var i = pos; i < mask.length; ++i) {\n if (!isPermanentCharacter(maskOptions, i)) {\n return i;\n }\n }\n\n return null;\n}\nfunction getStringValue(value) {\n return !value && value !== 0 ? '' : value + '';\n}\n\nfunction processChange(maskOptions, value, selection, previousValue, previousSelection) {\n var mask = maskOptions.mask,\n prefix = maskOptions.prefix,\n lastEditablePosition = maskOptions.lastEditablePosition;\n var newValue = value;\n var enteredString = '';\n var formattedEnteredStringLength = 0;\n var removedLength = 0;\n var cursorPosition = Math.min(previousSelection.start, selection.start);\n\n if (selection.end > previousSelection.start) {\n enteredString = newValue.slice(previousSelection.start, selection.end);\n formattedEnteredStringLength = getInsertStringLength(maskOptions, previousValue, enteredString, cursorPosition);\n\n if (!formattedEnteredStringLength) {\n removedLength = 0;\n } else {\n removedLength = previousSelection.length;\n }\n } else if (newValue.length < previousValue.length) {\n removedLength = previousValue.length - newValue.length;\n }\n\n newValue = previousValue;\n\n if (removedLength) {\n if (removedLength === 1 && !previousSelection.length) {\n var deleteFromRight = previousSelection.start === selection.start;\n cursorPosition = deleteFromRight ? getRightEditablePosition(maskOptions, selection.start) : getLeftEditablePosition(maskOptions, selection.start);\n }\n\n newValue = clearRange(maskOptions, newValue, cursorPosition, removedLength);\n }\n\n newValue = insertString(maskOptions, newValue, enteredString, cursorPosition);\n cursorPosition = cursorPosition + formattedEnteredStringLength;\n\n if (cursorPosition >= mask.length) {\n cursorPosition = mask.length;\n } else if (cursorPosition < prefix.length && !formattedEnteredStringLength) {\n cursorPosition = prefix.length;\n } else if (cursorPosition >= prefix.length && cursorPosition < lastEditablePosition && formattedEnteredStringLength) {\n cursorPosition = getRightEditablePosition(maskOptions, cursorPosition);\n }\n\n newValue = formatValue(maskOptions, newValue);\n\n if (!enteredString) {\n enteredString = null;\n }\n\n return {\n value: newValue,\n enteredString: enteredString,\n selection: {\n start: cursorPosition,\n end: cursorPosition\n }\n };\n}\n\nfunction isWindowsPhoneBrowser() {\n var windows = new RegExp('windows', 'i');\n var phone = new RegExp('phone', 'i');\n var ua = navigator.userAgent;\n return windows.test(ua) && phone.test(ua);\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction getRequestAnimationFrame() {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n}\n\nfunction getCancelAnimationFrame() {\n return window.cancelAnimationFrame || window.webkitCancelRequestAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame;\n}\n\nfunction defer(fn) {\n var hasCancelAnimationFrame = !!getCancelAnimationFrame();\n var deferFn;\n\n if (hasCancelAnimationFrame) {\n deferFn = getRequestAnimationFrame();\n } else {\n deferFn = function deferFn() {\n return setTimeout(fn, 1000 / 60);\n };\n }\n\n return deferFn(fn);\n}\nfunction cancelDefer(deferId) {\n var cancelFn = getCancelAnimationFrame() || clearTimeout;\n cancelFn(deferId);\n}\n\nvar InputElement =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InputElement, _React$Component);\n\n function InputElement(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.focused = false;\n _this.mounted = false;\n _this.previousSelection = null;\n _this.selectionDeferId = null;\n _this.saveSelectionLoopDeferId = null;\n\n _this.saveSelectionLoop = function () {\n _this.previousSelection = _this.getSelection();\n _this.saveSelectionLoopDeferId = defer(_this.saveSelectionLoop);\n };\n\n _this.runSaveSelectionLoop = function () {\n if (_this.saveSelectionLoopDeferId === null) {\n _this.saveSelectionLoop();\n }\n };\n\n _this.stopSaveSelectionLoop = function () {\n if (_this.saveSelectionLoopDeferId !== null) {\n cancelDefer(_this.saveSelectionLoopDeferId);\n _this.saveSelectionLoopDeferId = null;\n _this.previousSelection = null;\n }\n };\n\n _this.getInputDOMNode = function () {\n if (!_this.mounted) {\n return null;\n }\n\n var input = reactDom.findDOMNode(_assertThisInitialized(_assertThisInitialized(_this)));\n var isDOMNode = typeof window !== 'undefined' && input instanceof window.Element; // workaround for react-test-renderer\n // https://github.com/sanniassin/react-input-mask/issues/147\n\n if (input && !isDOMNode) {\n return null;\n }\n\n if (input.nodeName !== 'INPUT') {\n input = input.querySelector('input');\n }\n\n if (!input) {\n throw new Error('react-input-mask: inputComponent doesn\\'t contain input node');\n }\n\n return input;\n };\n\n _this.getInputValue = function () {\n var input = _this.getInputDOMNode();\n\n if (!input) {\n return null;\n }\n\n return input.value;\n };\n\n _this.setInputValue = function (value) {\n var input = _this.getInputDOMNode();\n\n if (!input) {\n return;\n }\n\n _this.value = value;\n input.value = value;\n };\n\n _this.setCursorToEnd = function () {\n var filledLength = getFilledLength(_this.maskOptions, _this.value);\n var pos = getRightEditablePosition(_this.maskOptions, filledLength);\n\n if (pos !== null) {\n _this.setCursorPosition(pos);\n }\n };\n\n _this.setSelection = function (start, end, options) {\n if (options === void 0) {\n options = {};\n }\n\n var input = _this.getInputDOMNode();\n\n var isFocused = _this.isFocused(); // don't change selection on unfocused input\n // because Safari sets focus on selection change (#154)\n\n\n if (!input || !isFocused) {\n return;\n }\n\n var _options = options,\n deferred = _options.deferred;\n\n if (!deferred) {\n setInputSelection(input, start, end);\n }\n\n if (_this.selectionDeferId !== null) {\n cancelDefer(_this.selectionDeferId);\n } // deferred selection update is required for pre-Lollipop Android browser,\n // but for consistent behavior we do it for all browsers\n\n\n _this.selectionDeferId = defer(function () {\n _this.selectionDeferId = null;\n setInputSelection(input, start, end);\n });\n _this.previousSelection = {\n start: start,\n end: end,\n length: Math.abs(end - start)\n };\n };\n\n _this.getSelection = function () {\n var input = _this.getInputDOMNode();\n\n return getInputSelection(input);\n };\n\n _this.getCursorPosition = function () {\n return _this.getSelection().start;\n };\n\n _this.setCursorPosition = function (pos) {\n _this.setSelection(pos, pos);\n };\n\n _this.isFocused = function () {\n return _this.focused;\n };\n\n _this.getBeforeMaskedValueChangeConfig = function () {\n var _this$maskOptions = _this.maskOptions,\n mask = _this$maskOptions.mask,\n maskChar = _this$maskOptions.maskChar,\n permanents = _this$maskOptions.permanents,\n formatChars = _this$maskOptions.formatChars;\n var alwaysShowMask = _this.props.alwaysShowMask;\n return {\n mask: mask,\n maskChar: maskChar,\n permanents: permanents,\n alwaysShowMask: !!alwaysShowMask,\n formatChars: formatChars\n };\n };\n\n _this.isInputAutofilled = function (value, selection, previousValue, previousSelection) {\n var input = _this.getInputDOMNode(); // only check for positive match because it will be false negative\n // in case of autofill simulation in tests\n //\n // input.matches throws an exception if selector isn't supported\n\n\n try {\n if (input.matches(':-webkit-autofill')) {\n return true;\n }\n } catch (e) {} // if input isn't focused then change event must have been triggered\n // either by autofill or event simulation in tests\n\n\n if (!_this.focused) {\n return true;\n } // if cursor has moved to the end while previousSelection forbids it\n // then it must be autofill\n\n\n return previousSelection.end < previousValue.length && selection.end === value.length;\n };\n\n _this.onChange = function (event) {\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n beforePasteState = _assertThisInitialize.beforePasteState;\n\n var _assertThisInitialize2 = _assertThisInitialized(_assertThisInitialized(_this)),\n previousSelection = _assertThisInitialize2.previousSelection;\n\n var beforeMaskedValueChange = _this.props.beforeMaskedValueChange;\n\n var value = _this.getInputValue();\n\n var previousValue = _this.value;\n\n var selection = _this.getSelection(); // autofill replaces entire value, ignore old one\n // https://github.com/sanniassin/react-input-mask/issues/113\n\n\n if (_this.isInputAutofilled(value, selection, previousValue, previousSelection)) {\n previousValue = formatValue(_this.maskOptions, '');\n previousSelection = {\n start: 0,\n end: 0,\n length: 0\n };\n } // set value and selection as if we haven't\n // cleared input in onPaste handler\n\n\n if (beforePasteState) {\n previousSelection = beforePasteState.selection;\n previousValue = beforePasteState.value;\n selection = {\n start: previousSelection.start + value.length,\n end: previousSelection.start + value.length,\n length: 0\n };\n value = previousValue.slice(0, previousSelection.start) + value + previousValue.slice(previousSelection.end);\n _this.beforePasteState = null;\n }\n\n var changedState = processChange(_this.maskOptions, value, selection, previousValue, previousSelection);\n var enteredString = changedState.enteredString;\n var newSelection = changedState.selection;\n var newValue = changedState.value;\n\n if (isFunction(beforeMaskedValueChange)) {\n var modifiedValue = beforeMaskedValueChange({\n value: newValue,\n selection: newSelection\n }, {\n value: previousValue,\n selection: previousSelection\n }, enteredString, _this.getBeforeMaskedValueChangeConfig());\n newValue = modifiedValue.value;\n newSelection = modifiedValue.selection;\n }\n\n _this.setInputValue(newValue);\n\n if (isFunction(_this.props.onChange)) {\n _this.props.onChange(event);\n }\n\n if (_this.isWindowsPhoneBrowser) {\n _this.setSelection(newSelection.start, newSelection.end, {\n deferred: true\n });\n } else {\n _this.setSelection(newSelection.start, newSelection.end);\n }\n };\n\n _this.onFocus = function (event) {\n var beforeMaskedValueChange = _this.props.beforeMaskedValueChange;\n var _this$maskOptions2 = _this.maskOptions,\n mask = _this$maskOptions2.mask,\n prefix = _this$maskOptions2.prefix;\n _this.focused = true; // if autoFocus is set, onFocus triggers before componentDidMount\n\n _this.mounted = true;\n\n if (mask) {\n if (!_this.value) {\n var emptyValue = formatValue(_this.maskOptions, prefix);\n var newValue = formatValue(_this.maskOptions, emptyValue);\n var filledLength = getFilledLength(_this.maskOptions, newValue);\n var cursorPosition = getRightEditablePosition(_this.maskOptions, filledLength);\n var newSelection = {\n start: cursorPosition,\n end: cursorPosition\n };\n\n if (isFunction(beforeMaskedValueChange)) {\n var modifiedValue = beforeMaskedValueChange({\n value: newValue,\n selection: newSelection\n }, {\n value: _this.value,\n selection: null\n }, null, _this.getBeforeMaskedValueChangeConfig());\n newValue = modifiedValue.value;\n newSelection = modifiedValue.selection;\n }\n\n var isInputValueChanged = newValue !== _this.getInputValue();\n\n if (isInputValueChanged) {\n _this.setInputValue(newValue);\n }\n\n if (isInputValueChanged && isFunction(_this.props.onChange)) {\n _this.props.onChange(event);\n }\n\n _this.setSelection(newSelection.start, newSelection.end);\n } else if (getFilledLength(_this.maskOptions, _this.value) < _this.maskOptions.mask.length) {\n _this.setCursorToEnd();\n }\n\n _this.runSaveSelectionLoop();\n }\n\n if (isFunction(_this.props.onFocus)) {\n _this.props.onFocus(event);\n }\n };\n\n _this.onBlur = function (event) {\n var beforeMaskedValueChange = _this.props.beforeMaskedValueChange;\n var mask = _this.maskOptions.mask;\n\n _this.stopSaveSelectionLoop();\n\n _this.focused = false;\n\n if (mask && !_this.props.alwaysShowMask && isEmpty(_this.maskOptions, _this.value)) {\n var newValue = '';\n\n if (isFunction(beforeMaskedValueChange)) {\n var modifiedValue = beforeMaskedValueChange({\n value: newValue,\n selection: null\n }, {\n value: _this.value,\n selection: _this.previousSelection\n }, null, _this.getBeforeMaskedValueChangeConfig());\n newValue = modifiedValue.value;\n }\n\n var isInputValueChanged = newValue !== _this.getInputValue();\n\n if (isInputValueChanged) {\n _this.setInputValue(newValue);\n }\n\n if (isInputValueChanged && isFunction(_this.props.onChange)) {\n _this.props.onChange(event);\n }\n }\n\n if (isFunction(_this.props.onBlur)) {\n _this.props.onBlur(event);\n }\n };\n\n _this.onMouseDown = function (event) {\n // tiny unintentional mouse movements can break cursor\n // position on focus, so we have to restore it in that case\n //\n // https://github.com/sanniassin/react-input-mask/issues/108\n if (!_this.focused && document.addEventListener) {\n _this.mouseDownX = event.clientX;\n _this.mouseDownY = event.clientY;\n _this.mouseDownTime = new Date().getTime();\n\n var mouseUpHandler = function mouseUpHandler(mouseUpEvent) {\n document.removeEventListener('mouseup', mouseUpHandler);\n\n if (!_this.focused) {\n return;\n }\n\n var deltaX = Math.abs(mouseUpEvent.clientX - _this.mouseDownX);\n var deltaY = Math.abs(mouseUpEvent.clientY - _this.mouseDownY);\n var axisDelta = Math.max(deltaX, deltaY);\n\n var timeDelta = new Date().getTime() - _this.mouseDownTime;\n\n if (axisDelta <= 10 && timeDelta <= 200 || axisDelta <= 5 && timeDelta <= 300) {\n _this.setCursorToEnd();\n }\n };\n\n document.addEventListener('mouseup', mouseUpHandler);\n }\n\n if (isFunction(_this.props.onMouseDown)) {\n _this.props.onMouseDown(event);\n }\n };\n\n _this.onPaste = function (event) {\n if (isFunction(_this.props.onPaste)) {\n _this.props.onPaste(event);\n } // event.clipboardData might not work in Android browser\n // cleaning input to get raw text inside onChange handler\n\n\n if (!event.defaultPrevented) {\n _this.beforePasteState = {\n value: _this.getInputValue(),\n selection: _this.getSelection()\n };\n\n _this.setInputValue('');\n }\n };\n\n _this.handleRef = function (ref) {\n if (_this.props.children == null && isFunction(_this.props.inputRef)) {\n _this.props.inputRef(ref);\n }\n };\n\n var _mask = props.mask,\n _maskChar = props.maskChar,\n _formatChars = props.formatChars,\n _alwaysShowMask = props.alwaysShowMask,\n _beforeMaskedValueChange = props.beforeMaskedValueChange;\n var defaultValue = props.defaultValue,\n _value = props.value;\n _this.maskOptions = parseMask(_mask, _maskChar, _formatChars);\n\n if (defaultValue == null) {\n defaultValue = '';\n }\n\n if (_value == null) {\n _value = defaultValue;\n }\n\n var _newValue = getStringValue(_value);\n\n if (_this.maskOptions.mask && (_alwaysShowMask || _newValue)) {\n _newValue = formatValue(_this.maskOptions, _newValue);\n\n if (isFunction(_beforeMaskedValueChange)) {\n var oldValue = props.value;\n\n if (props.value == null) {\n oldValue = defaultValue;\n }\n\n oldValue = getStringValue(oldValue);\n\n var modifiedValue = _beforeMaskedValueChange({\n value: _newValue,\n selection: null\n }, {\n value: oldValue,\n selection: null\n }, null, _this.getBeforeMaskedValueChangeConfig());\n\n _newValue = modifiedValue.value;\n }\n }\n\n _this.value = _newValue;\n return _this;\n }\n\n var _proto = InputElement.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // workaround for react-test-renderer\n // https://github.com/sanniassin/react-input-mask/issues/147\n\n if (!this.getInputDOMNode()) {\n return;\n }\n\n this.isWindowsPhoneBrowser = isWindowsPhoneBrowser();\n\n if (this.maskOptions.mask && this.getInputValue() !== this.value) {\n this.setInputValue(this.value);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var previousSelection = this.previousSelection;\n var _this$props = this.props,\n beforeMaskedValueChange = _this$props.beforeMaskedValueChange,\n alwaysShowMask = _this$props.alwaysShowMask,\n mask = _this$props.mask,\n maskChar = _this$props.maskChar,\n formatChars = _this$props.formatChars;\n var previousMaskOptions = this.maskOptions;\n var showEmpty = alwaysShowMask || this.isFocused();\n var hasValue = this.props.value != null;\n var newValue = hasValue ? getStringValue(this.props.value) : this.value;\n var cursorPosition = previousSelection ? previousSelection.start : null;\n this.maskOptions = parseMask(mask, maskChar, formatChars);\n\n if (!this.maskOptions.mask) {\n if (previousMaskOptions.mask) {\n this.stopSaveSelectionLoop(); // render depends on this.maskOptions and this.value,\n // call forceUpdate to keep it in sync\n\n this.forceUpdate();\n }\n\n return;\n } else if (!previousMaskOptions.mask && this.isFocused()) {\n this.runSaveSelectionLoop();\n }\n\n var isMaskChanged = this.maskOptions.mask && this.maskOptions.mask !== previousMaskOptions.mask;\n\n if (!previousMaskOptions.mask && !hasValue) {\n newValue = this.getInputValue();\n }\n\n if (isMaskChanged || this.maskOptions.mask && (newValue || showEmpty)) {\n newValue = formatValue(this.maskOptions, newValue);\n }\n\n if (isMaskChanged) {\n var filledLength = getFilledLength(this.maskOptions, newValue);\n\n if (cursorPosition === null || filledLength < cursorPosition) {\n if (isFilled(this.maskOptions, newValue)) {\n cursorPosition = filledLength;\n } else {\n cursorPosition = getRightEditablePosition(this.maskOptions, filledLength);\n }\n }\n }\n\n if (this.maskOptions.mask && isEmpty(this.maskOptions, newValue) && !showEmpty && (!hasValue || !this.props.value)) {\n newValue = '';\n }\n\n var newSelection = {\n start: cursorPosition,\n end: cursorPosition\n };\n\n if (isFunction(beforeMaskedValueChange)) {\n var modifiedValue = beforeMaskedValueChange({\n value: newValue,\n selection: newSelection\n }, {\n value: this.value,\n selection: this.previousSelection\n }, null, this.getBeforeMaskedValueChangeConfig());\n newValue = modifiedValue.value;\n newSelection = modifiedValue.selection;\n }\n\n this.value = newValue;\n var isValueChanged = this.getInputValue() !== this.value; // render depends on this.maskOptions and this.value,\n // call forceUpdate to keep it in sync\n\n if (isValueChanged) {\n this.setInputValue(this.value);\n this.forceUpdate();\n } else if (isMaskChanged) {\n this.forceUpdate();\n }\n\n var isSelectionChanged = false;\n\n if (newSelection.start != null && newSelection.end != null) {\n isSelectionChanged = !previousSelection || previousSelection.start !== newSelection.start || previousSelection.end !== newSelection.end;\n }\n\n if (isSelectionChanged || isValueChanged) {\n this.setSelection(newSelection.start, newSelection.end);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n\n if (this.selectionDeferId !== null) {\n cancelDefer(this.selectionDeferId);\n }\n\n this.stopSaveSelectionLoop();\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n mask = _this$props2.mask,\n alwaysShowMask = _this$props2.alwaysShowMask,\n maskChar = _this$props2.maskChar,\n formatChars = _this$props2.formatChars,\n inputRef = _this$props2.inputRef,\n beforeMaskedValueChange = _this$props2.beforeMaskedValueChange,\n children = _this$props2.children,\n restProps = _objectWithoutPropertiesLoose(_this$props2, [\"mask\", \"alwaysShowMask\", \"maskChar\", \"formatChars\", \"inputRef\", \"beforeMaskedValueChange\", \"children\"]);\n\n var inputElement;\n process.env.NODE_ENV !== \"production\" ? warning( // parse mask to test against actual mask prop as this.maskOptions\n // will be updated later in componentDidUpdate\n !restProps.maxLength || !parseMask(mask, maskChar, formatChars).mask, 'react-input-mask: maxLength property shouldn\\'t be passed to the masked input. It breaks masking and unnecessary because length is limited by the mask length.') : void 0;\n\n if (children) {\n !isFunction(children) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'react-input-mask: children must be a function') : invariant(false) : void 0;\n var controlledProps = ['onChange', 'onPaste', 'onMouseDown', 'onFocus', 'onBlur', 'value', 'disabled', 'readOnly'];\n\n var childrenProps = _extends({}, restProps);\n\n controlledProps.forEach(function (propId) {\n return delete childrenProps[propId];\n });\n inputElement = children(childrenProps);\n var conflictProps = controlledProps.filter(function (propId) {\n return inputElement.props[propId] != null && inputElement.props[propId] !== restProps[propId];\n });\n !!conflictProps.length ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"react-input-mask: the following props should be passed to the react-input-mask's component and should not be altered in children's function: \" + conflictProps.join(', ')) : invariant(false) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!inputRef, 'react-input-mask: inputRef is ignored when children is passed, attach ref to the children instead') : void 0;\n } else {\n inputElement = React.createElement(\"input\", _extends({\n ref: this.handleRef\n }, restProps));\n }\n\n var changedProps = {\n onFocus: this.onFocus,\n onBlur: this.onBlur\n };\n\n if (this.maskOptions.mask) {\n if (!restProps.disabled && !restProps.readOnly) {\n changedProps.onChange = this.onChange;\n changedProps.onPaste = this.onPaste;\n changedProps.onMouseDown = this.onMouseDown;\n }\n\n if (restProps.value != null) {\n changedProps.value = this.value;\n }\n }\n\n inputElement = React.cloneElement(inputElement, changedProps);\n return inputElement;\n };\n\n return InputElement;\n}(React.Component);\n\nmodule.exports = InputElement;\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./lib/react-input-mask.production.min.js');\n} else {\n module.exports = require('./lib/react-input-mask.development.js');\n}\n","import InputMask from \"react-input-mask\"\r\nimport React, { forwardRef, useEffect, useState } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport InputWithAdornments from \"../InputWithAdornments\"\r\n\r\nconst InputWithMask = forwardRef((props, ref) => {\r\n const { mask, value: valueProp, onChange, onBlur, disabled, ...other } = props\r\n const [value, setValue] = useState(valueProp)\r\n\r\n const handleChange = (e) => {\r\n if (e.target.value?.match(/[0-9]/)) {\r\n setValue(e.target.value)\r\n } else {\r\n setValue(\"\")\r\n }\r\n if (onChange) {\r\n onChange(e)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setValue(valueProp)\r\n }, [valueProp])\r\n\r\n return (\r\n <InputMask\r\n maskPlaceholder={null}\r\n mask={mask}\r\n alwaysShowMask={false}\r\n disabled={disabled}\r\n onChange={handleChange}\r\n onBlur={onBlur}\r\n value={value}\r\n >\r\n {() => (\r\n <InputWithAdornments\r\n disabled={disabled}\r\n value={value}\r\n ref={ref}\r\n {...other}\r\n />\r\n )}\r\n </InputMask>\r\n )\r\n})\r\n\r\nInputWithMask.displayName = \"InputWithMask\"\r\n\r\nInputWithMask.propTypes = {\r\n label: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n cornerLabel: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n startIcon: PropTypes.element,\r\n endIcon: PropTypes.element,\r\n mask: PropTypes.string,\r\n}\r\n\r\nexport default InputWithMask\r\n","import React, { useMemo } from \"react\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nfunction CountryItem({ item, selectCountryIndex }) {\r\n const countryIcon = useMemo(\r\n () =>\r\n item.nameCode\r\n .toUpperCase()\r\n .replace(/./g, (char) =>\r\n String.fromCodePoint(char.charCodeAt(0) + 127397)\r\n ),\r\n [item.nameCode]\r\n )\r\n\r\n const handleClick = () => {\r\n selectCountryIndex(item)\r\n }\r\n\r\n return (\r\n <StyledCountry className=\"KUI-Country\" onClick={handleClick}>\r\n <StyledTitle className=\"KUI-Country_title\">\r\n <StyledIcon className=\"KUI-Country_icon\">{countryIcon}</StyledIcon>\r\n <StyledCountryName className=\"KUI-Country_name\">\r\n {item.nameRus}\r\n </StyledCountryName>\r\n </StyledTitle>\r\n <div>\r\n <StyledCountryPhone className=\"KUI-Country_phone\">\r\n +{item.phoneCode}\r\n </StyledCountryPhone>\r\n </div>\r\n </StyledCountry>\r\n )\r\n}\r\n\r\nexport default CountryItem\r\n\r\nconst StyledCountry = styled.div`\r\n border-radius: 12px;\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 8px 11px;\r\n cursor: pointer;\r\n box-sizing: border-box;\r\n &:hover {\r\n background-color: ${palette.background.light2};\r\n }\r\n`\r\n\r\nconst StyledTitle = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`\r\n\r\nconst StyledIcon = styled.span`\r\n padding-bottom: 1px;\r\n width: 28px;\r\n`\r\n\r\nconst StyledCountryName = styled.p`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n margin: 0;\r\n padding-top: 3px;\r\n font-size: 14px;\r\n line-height: 18px;\r\n font-weight: 600;\r\n`\r\n\r\nconst StyledCountryPhone = styled.p`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n margin: 0;\r\n font-size: 12px;\r\n line-height: 14px;\r\n font-weight: 500;\r\n color: ${palette.grey.fiftyP};\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst SearchIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M5.15016 0.333008C7.81034 0.333008 9.96683 2.4895 9.96683 5.14967C9.96683 6.27563 9.58049 7.31135 8.93313 8.13151L11.5009 10.699C11.7222 10.9203 11.7222 11.2791 11.5009 11.5004C11.2796 11.7217 10.9208 11.7217 10.6995 11.5004L8.132 8.93264C7.31184 9.58 6.27612 9.96634 5.15016 9.96634C2.48999 9.96634 0.333496 7.80985 0.333496 5.14967C0.333496 2.4895 2.48999 0.333008 5.15016 0.333008ZM5.15016 1.46634C3.11591 1.46634 1.46683 3.11543 1.46683 5.14967C1.46683 7.18392 3.11591 8.83301 5.15016 8.83301C7.18441 8.83301 8.8335 7.18392 8.8335 5.14967C8.8335 3.11543 7.18441 1.46634 5.15016 1.46634Z\"\r\n fill=\"#7F8285\"\r\n />\r\n </svg>\r\n)\r\n\r\nSearchIcon.defaultProps = {\r\n width: 12,\r\n height: 12,\r\n}\r\n\r\nSearchIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default SearchIcon\r\n","import React, { useEffect, useRef, useState } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport countries from \"../../../utils/countries.json\"\r\nimport CountryItem from \"./CountryItem\"\r\nimport SearchIcon from \"../../../icons/SearchIcon\"\r\nimport { theme } from \"../../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nfunction Dropdown({\r\n isOpen,\r\n selectCountryIndex,\r\n setIsOpenDropDown,\r\n buttonRef,\r\n}) {\r\n const [filteredCountries, setFilteredCountries] = useState(countries)\r\n const dropdownRef = useRef()\r\n\r\n const closePopUp = (e) => {\r\n if (dropdownRef.current && buttonRef.current) {\r\n if (\r\n !dropdownRef.current.contains(e.target) &&\r\n !buttonRef.current.contains(e.target)\r\n ) {\r\n setIsOpenDropDown(false)\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", closePopUp)\r\n return () => {\r\n document.removeEventListener(\"click\", closePopUp)\r\n }\r\n }, [])\r\n\r\n if (!isOpen) {\r\n return null\r\n }\r\n\r\n const filterCountries = (e) => {\r\n const query = e.target.value\r\n\r\n if (query.length > 0) {\r\n setFilteredCountries(\r\n countries.filter(\r\n (item) =>\r\n item.nameRus.toLowerCase().indexOf(query.toLowerCase()) !== -1\r\n )\r\n )\r\n } else {\r\n setFilteredCountries(countries)\r\n }\r\n }\r\n\r\n return (\r\n <StyledContainer\r\n isOpen={isOpen}\r\n className={classNames(\r\n \"KUI-DropdownContainer\",\r\n isOpen && \"KUI-Dropdown_open\"\r\n )}\r\n ref={dropdownRef}\r\n >\r\n <StyledSearchWrapper className=\"KUI-SearchWrapper\">\r\n <StyledSearch className=\"KUI-Search\">\r\n <StyledSearchInput\r\n type=\"text\"\r\n placeholder=\"Поиск...\"\r\n onChange={filterCountries}\r\n className=\"KUI-SearchInput\"\r\n />\r\n <span>\r\n <SearchIcon />\r\n </span>\r\n </StyledSearch>\r\n </StyledSearchWrapper>\r\n <StyledDropdown className=\"KUI-Dropdown\">\r\n {filteredCountries.map((item, key) => (\r\n <CountryItem\r\n key={key}\r\n item={item}\r\n selectCountryIndex={selectCountryIndex}\r\n />\r\n ))}\r\n </StyledDropdown>\r\n </StyledContainer>\r\n )\r\n}\r\n\r\nexport default Dropdown\r\n\r\nconst StyledContainer = styled.div`\r\n width: 100%;\r\n max-height: 275px;\r\n display: ${({ isOpen }) => (isOpen ? \"block\" : \"none\")};\r\n position: absolute;\r\n background-color: ${palette.grey.zero};\r\n z-index: 100;\r\n border: 1px solid ${palette.grey.fifteenB};\r\n top: 64px;\r\n box-shadow: ${theme.shadows.shadow4};\r\n border-radius: 8px;\r\n overflow: auto;\r\n -ms-overflow-style: none;\r\n scrollbar-width: none;\r\n overflow-y: scroll;\r\n user-select: none;\r\n &::-webkit-scrollbar {\r\n width: 0;\r\n }\r\n`\r\n\r\nconst StyledSearchWrapper = styled.div`\r\n padding: 8px;\r\n position: sticky;\r\n top: 0;\r\n background-color: ${palette.grey.zero};\r\n border-radius: 8px;\r\n`\r\n\r\nconst StyledSearch = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n height: 40px;\r\n background-color: ${palette.background.light2};\r\n padding: 0 12px;\r\n border-radius: 8px;\r\n`\r\n\r\nconst StyledSearchInput = styled.input`\r\n border: none;\r\n width: calc(100% - 18px);\r\n background-color: transparent;\r\n height: 100%;\r\n outline: none;\r\n`\r\n\r\nconst StyledDropdown = styled.div`\r\n width: 100%;\r\n padding: 0 8px;\r\n box-sizing: border-box;\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst HalfArrowIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M6.86193 0.195262L4 3.05719L1.13807 0.195262C0.877722 -0.0650874 0.455612 -0.0650874 0.195262 0.195262C-0.0650874 0.455612 -0.0650874 0.877722 0.195262 1.13807L3.5286 4.4714C3.78895 4.73175 4.21105 4.73175 4.4714 4.4714L7.80474 1.13807C8.06509 0.877722 8.06509 0.455612 7.80474 0.195262C7.54439 -0.0650874 7.12228 -0.0650874 6.86193 0.195262Z\"\r\n fill=\"#8A94A6\"\r\n />\r\n </svg>\r\n)\r\n\r\nHalfArrowIcon.defaultProps = {\r\n width: 8,\r\n height: 5,\r\n}\r\n\r\nHalfArrowIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default HalfArrowIcon\r\n","import React, { forwardRef, useRef, useState } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport InputWithMask from \"../InputWithMask\"\r\nimport countries from \"../../utils/countries.json\"\r\nimport Caption from \"../Caption\"\r\nimport Dropdown from \"./Dropdown\"\r\nimport HalfArrowIcon from \"../../icons/HalfArrowIcon\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nconst InputWithCountryDropdown = forwardRef(\r\n ({ onSelectCountry, hiddenInputProps, ...inputProps }, ref) => {\r\n const selectedCountryCode = hiddenInputProps?.value\r\n ? String(hiddenInputProps.value)\r\n : \"7\"\r\n const selectedCountryIndex = countries.findIndex(\r\n (country) => country.phoneCode === selectedCountryCode\r\n )\r\n const [selectedCountry, setSelectedCountry] = useState(\r\n selectedCountryIndex < 0 ? 168 : selectedCountryIndex\r\n )\r\n const [isOpenDropdown, setIsOpenDropDown] = useState(false)\r\n const buttonRef = useRef()\r\n\r\n const selectCountryIndex = (item) => {\r\n setSelectedCountry(\r\n countries.reduce(\r\n (acc, country, index) => (country.name === item.name ? index : acc),\r\n 0\r\n )\r\n )\r\n setIsOpenDropDown(false)\r\n if (onSelectCountry) {\r\n onSelectCountry(item)\r\n }\r\n }\r\n\r\n const handleClick = () => {\r\n setIsOpenDropDown(!isOpenDropdown)\r\n }\r\n\r\n return (\r\n <StyledDropdownWrapper className=\"KUI-InputDropdown_wrapper\">\r\n <InputWithMask\r\n ref={ref}\r\n label=\"Номер телефона\"\r\n mask={countries[selectedCountry].mask}\r\n startIcon={\r\n <StyledPhoneCodeButton\r\n type=\"button\"\r\n className=\"KUI-InputDropdown_button-phone-code\"\r\n onClick={handleClick}\r\n ref={buttonRef}\r\n >\r\n <Caption size=\"s\" weight={500}>\r\n +{countries[selectedCountry].phoneCode}\r\n </Caption>\r\n <StyledPhoneCodeIcon isReverse={isOpenDropdown}>\r\n <HalfArrowIcon />\r\n </StyledPhoneCodeIcon>\r\n </StyledPhoneCodeButton>\r\n }\r\n {...inputProps}\r\n />\r\n <Dropdown\r\n isOpen={isOpenDropdown}\r\n selectCountryIndex={selectCountryIndex}\r\n setIsOpenDropDown={setIsOpenDropDown}\r\n buttonRef={buttonRef}\r\n />\r\n <input\r\n style={{ display: \"none\" }}\r\n readOnly\r\n aria-label=\"phone_code\"\r\n {...hiddenInputProps}\r\n value={countries[selectedCountry].phoneCode}\r\n />\r\n </StyledDropdownWrapper>\r\n )\r\n }\r\n)\r\n\r\nInputWithCountryDropdown.displayName = \"InputWithCountryDropdown\"\r\n\r\nInputWithCountryDropdown.propTypes = {\r\n label: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n}\r\n\r\nexport default InputWithCountryDropdown\r\n\r\nconst StyledDropdownWrapper = styled.div`\r\n position: relative;\r\n`\r\n\r\nconst StyledPhoneCodeButton = styled.button`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 80px;\r\n height: 40px;\r\n box-sizing: border-box;\r\n background: ${palette.background.light2};\r\n border-radius: 8px;\r\n border: none;\r\n margin: 0;\r\n box-shadow: none;\r\n cursor: pointer;\r\n padding: 8px 14px 8px;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n user-select: none;\r\n`\r\n\r\nconst StyledPhoneCodeIcon = styled.span`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n svg {\r\n transition: all linear 0.2s;\r\n transform: ${({ isReverse }) => (isReverse ? \"rotate(180deg)\" : \"none\")};\r\n }\r\n`\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst palette = theme.palette\r\n\r\nconst Checkbox = forwardRef((props, ref) => {\r\n const { className, label, error, inputRef, ...checkboxProps } = props\r\n\r\n return (\r\n <StyledLabel className=\"KUI-Checkbox_label\">\r\n <StyledCheckbox\r\n ref={inputRef}\r\n type=\"checkbox\"\r\n className=\"KUI-Checkbox\"\r\n {...checkboxProps}\r\n />\r\n <StyledCustomCheckbox\r\n error={!!error}\r\n className={classNames(\r\n \"KUI-Checkbox_custom\",\r\n className,\r\n !!error && \"KUI-Checkbox_error\"\r\n )}\r\n />\r\n {!!label && (\r\n <StyledCheckboxLabel className=\"KUI-Label_checkbox\">\r\n {label}\r\n </StyledCheckboxLabel>\r\n )}\r\n </StyledLabel>\r\n )\r\n})\r\n\r\nCheckbox.defaultProps = {\r\n label: \"\",\r\n}\r\n\r\nCheckbox.propTypes = {\r\n label: PropTypes.any,\r\n error: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n}\r\n\r\nCheckbox.displayName = \"Checkbox\"\r\n\r\nexport default Checkbox\r\n\r\nconst errorCSS = ({ error }) =>\r\n error &&\r\n css`\r\n border-color: ${palette.red.fiftyP};\r\n `\r\n\r\nconst StyledCustomCheckbox = styled.span`\r\n border-radius: 6px;\r\n padding: 1px;\r\n width: 20px;\r\n height: 20px;\r\n box-sizing: border-box;\r\n border: 1px solid ${palette.grey.fifteenB};\r\n transition: all linear 0.3s;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n ${errorCSS};\r\n &:before {\r\n content: \"\";\r\n display: block;\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 4px;\r\n background-color: ${palette.grey.zero};\r\n transition: all linear 0.2s;\r\n }\r\n`\r\n\r\nconst StyledCheckbox = styled.input`\r\n opacity: 0;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n &:checked + .KUI-Checkbox_custom:before {\r\n background-color: ${palette.brand.main};\r\n background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z\" fill=\"%23fff\"/%3E%3C/svg%3E');\r\n }\r\n &:disabled + .KUI-Checkbox_custom {\r\n background-color: ${palette.background.light2};\r\n border-color: ${palette.background.light2};\r\n &:before {\r\n background-color: ${palette.background.light2};\r\n }\r\n }\r\n &:disabled:checked + .KUI-Checkbox_custom:before {\r\n background-color: ${palette.grey.fifteenB};\r\n }\r\n`\r\n\r\nconst StyledLabel = styled.label`\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n position: relative;\r\n &:hover {\r\n .KUI-Checkbox:not(:disabled):not(:checked) + .KUI-Checkbox_custom {\r\n border-color: ${palette.brand.main};\r\n }\r\n .KUI-Checkbox:not(:disabled):checked + .KUI-Checkbox_custom {\r\n border-color: ${palette.brand.light};\r\n }\r\n }\r\n`\r\n\r\nconst StyledCheckboxLabel = styled.span`\r\n margin-left: 14px;\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst CloseIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox=\"0 0 26 26\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M6.93909 6.93909C7.27382 6.60435 7.81654 6.60435 8.15127 6.93909L13 11.7878L17.8487 6.93909C18.1835 6.60435 18.7262 6.60435 19.0609 6.93909C19.3957 7.27382 19.3957 7.81653 19.0609 8.15127L14.2122 13L19.0609 17.8487C19.3957 18.1835 19.3957 18.7262 19.0609 19.0609C18.7262 19.3956 18.1835 19.3956 17.8487 19.0609L13 14.2122L8.15127 19.0609C7.81654 19.3956 7.27382 19.3956 6.93909 19.0609C6.60435 18.7262 6.60435 18.1835 6.93909 17.8487L11.7878 13L6.93909 8.15127C6.60435 7.81653 6.60435 7.27382 6.93909 6.93909Z\"\r\n fill=\"#7F8285\"\r\n />\r\n </svg>\r\n)\r\n\r\nCloseIcon.defaultProps = {\r\n width: 26,\r\n height: 26,\r\n}\r\n\r\nCloseIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default CloseIcon\r\n","import React, { useEffect, useRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css, Global } from \"@emotion/react\"\r\nimport { createPortal } from \"react-dom\"\r\nimport Heading from \"../Heading\"\r\nimport CloseIcon from \"../../icons/CloseIcon\"\r\nimport { theme } from \"../../theme\"\r\nimport Caption from \"../Caption\"\r\nimport Button from \"../Button\"\r\n\r\nconst { breakpoints, palette } = theme\r\n\r\nfunction Modal(props) {\r\n const {\r\n isOpen,\r\n handleClose,\r\n isScrollable,\r\n title,\r\n description,\r\n children,\r\n isHasHeader,\r\n className,\r\n size,\r\n icon,\r\n ...otherProps\r\n } = props\r\n const modalRef = useRef(null)\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n document.body.classList.add(\"KUI-Modal_body\")\r\n } else {\r\n document.body.classList.remove(\"KUI-Modal_body\")\r\n }\r\n }, [isOpen])\r\n\r\n useEffect(\r\n () => () => {\r\n document.body.classList.remove(\"KUI-Modal_body\")\r\n },\r\n []\r\n )\r\n\r\n const closeModal = (e) => {\r\n if (modalRef.current && !modalRef.current.contains(e.target)) {\r\n handleClose()\r\n }\r\n }\r\n\r\n if (!isOpen) {\r\n return null\r\n }\r\n\r\n return createPortal(\r\n <StyledContainer\r\n className=\"KUI-Modal_container\"\r\n onClick={closeModal}\r\n {...otherProps}\r\n >\r\n <Global\r\n styles={css`\r\n .KUI-Modal_body {\r\n overflow: hidden;\r\n padding-right: 17px;\r\n }\r\n `}\r\n />\r\n <StyledModal\r\n ref={modalRef}\r\n isOpen={isOpen}\r\n size={size}\r\n className={classNames(\r\n \"KUI-Modal\",\r\n isOpen && \"KUI-Modal_open\",\r\n isScrollable && \"KUI-Modal_scrollable\",\r\n className\r\n )}\r\n >\r\n <StyledHeaderWrapper className=\"KUI-Modal_header\">\r\n {title && (\r\n <StyledModalTitle className=\"KUI-Modal_title\">\r\n {title}\r\n </StyledModalTitle>\r\n )}\r\n {description && (\r\n <StyledDescriptionWrapper>\r\n <StyledDescription size=\"s\" color=\"fiftyP\">\r\n {description}\r\n </StyledDescription>\r\n </StyledDescriptionWrapper>\r\n )}\r\n <StyledHeadingIconsWrapper>\r\n <div>{icon}</div>\r\n <Button\r\n className=\"KUI-Modal_close-button\"\r\n isCircle\r\n size=\"xxs\"\r\n variant=\"transparent\"\r\n onClick={handleClose}\r\n >\r\n <CloseIcon />\r\n </Button>\r\n </StyledHeadingIconsWrapper>\r\n </StyledHeaderWrapper>\r\n {children}\r\n </StyledModal>\r\n </StyledContainer>,\r\n document.body\r\n )\r\n}\r\n\r\nModal.defaultProps = {\r\n isOpen: false,\r\n handleClose: null,\r\n title: \"\",\r\n size: \"small\",\r\n}\r\n\r\nModal.propTypes = {\r\n isOpen: PropTypes.bool,\r\n handleClose: PropTypes.func,\r\n title: PropTypes.string,\r\n size: PropTypes.oneOf([\"small\", \"large\"]),\r\n}\r\n\r\nexport default Modal\r\n\r\nconst StyledContainer = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n background: rgba(0, 0, 0, 0.5);\r\n backdrop-filter: blur(4px);\r\n z-index: 1500;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n transition: all linear 0.2s;\r\n`\r\n\r\nconst StyledModal = styled.div`\r\n border-radius: 12px;\r\n overflow: visible;\r\n overflow-y: visible;\r\n box-shadow: 0px 11px 15px -7px rgb(0 0 0 / 20%),\r\n 0px 24px 38px 3px rgb(0 0 0 / 14%), 0px 9px 46px 8px rgb(0 0 0 / 12%);\r\n -ms-overflow-style: none;\r\n scrollbar-width: none;\r\n background-color: ${palette.grey.zero};\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n max-height: 720px;\r\n width: ${({ size }) => (size === \"small\" ? 480 : 720)}px;\r\n display: ${({ isOpen }) => (isOpen ? \"block\" : \"none\")};\r\n &::-webkit-scrollbar {\r\n width: 0;\r\n }\r\n @media (max-width: 720px) {\r\n max-height: 90vh;\r\n }\r\n @media (max-width: ${breakpoints.xs}px) {\r\n position: absolute;\r\n bottom: 0;\r\n width: 100vw;\r\n border-radius: 12px 12px 0 0;\r\n }\r\n .KUI-Modal_scrollable {\r\n overflow: auto;\r\n overflow-y: auto;\r\n }\r\n`\r\n\r\nconst StyledHeaderWrapper = styled.div`\r\n top: 0;\r\n width: 100%;\r\n background: ${theme.palette.grey.zero};\r\n z-index: 5;\r\n border-radius: 12px 12px 0 0;\r\n position: sticky;\r\n box-sizing: border-box;\r\n text-align: center;\r\n @media (max-width: 600px) {\r\n padding: 0 16px;\r\n }\r\n`\r\n\r\nconst StyledModalTitle = styled(Heading)`\r\n font-weight: 700;\r\n padding: 36px 40px 8px;\r\n @media (max-width: 661px) {\r\n padding: 40px 24px 13px;\r\n font-size: 18px;\r\n line-height: 24px;\r\n }\r\n`\r\n\r\nconst StyledDescriptionWrapper = styled.div`\r\n padding: 0 40px;\r\n @media (max-width: 900px) {\r\n padding: 0 24px;\r\n }\r\n`\r\n\r\nconst StyledDescription = styled(Caption)`\r\n @media (max-width: 600px) {\r\n font-size: 13px;\r\n line-height: 20px;\r\n }\r\n`\r\n\r\nconst StyledHeadingIconsWrapper = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n cursor: pointer;\r\n padding: 16px;\r\n z-index: 5;\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n box-sizing: border-box;\r\n`\r\n","const switchVariants = {\r\n s: {\r\n width: 40,\r\n height: 22,\r\n before: 14,\r\n },\r\n m: {\r\n width: 36,\r\n height: 26,\r\n before: 18,\r\n },\r\n l: {\r\n width: 56,\r\n height: 34,\r\n before: 26,\r\n },\r\n}\r\n\r\nexport default switchVariants\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport { theme } from \"../../theme\"\r\nimport switchVariants from \"./variants\"\r\n\r\nconst { palette } = theme\r\n\r\nconst Switch = forwardRef((props, ref) => {\r\n const { size, className, label, error, inputRef, ...switchProps } = props\r\n\r\n return (\r\n <StyledLabel className=\"KUI-Switch_label\">\r\n <StyledSwitch\r\n variant={switchVariants[size]}\r\n ref={inputRef}\r\n type=\"checkbox\"\r\n className=\"KUI-Switch\"\r\n {...switchProps}\r\n />\r\n <StyledCustomSwitch\r\n variant={switchVariants[size]}\r\n error={!!error}\r\n className={classNames(\r\n \"KUI-Switch_custom\",\r\n !!error && \"KUI-Switch_error\"\r\n )}\r\n />\r\n {!!label && (\r\n <StyledSwitchLabel className=\"KUI-Label_switch\">\r\n {label}\r\n </StyledSwitchLabel>\r\n )}\r\n </StyledLabel>\r\n )\r\n})\r\n\r\nSwitch.defaultProps = {\r\n label: \"\",\r\n className: \"\",\r\n name: \"check\",\r\n size: \"s\",\r\n}\r\n\r\nSwitch.propTypes = {\r\n label: PropTypes.string,\r\n size: PropTypes.oneOf([\"s\", \"m\", \"l\"]),\r\n disabled: PropTypes.bool,\r\n error: PropTypes.bool,\r\n}\r\n\r\nSwitch.displayName = \"Switch\"\r\n\r\nexport default Switch\r\n\r\nconst switchVariantCSS = ({ variant }) => css`\r\n width: ${variant.width}px;\r\n height: ${variant.height}px;\r\n &::before {\r\n width: ${variant.before}px;\r\n }\r\n`\r\n\r\nconst switchErrorCSS = ({ error }) =>\r\n error &&\r\n css`\r\n border-color: ${palette.red.fiftyP};\r\n background-color: ${palette.red.five};\r\n `\r\n\r\nconst StyledCustomSwitch = styled.span`\r\n background: #c9ced6;\r\n border-radius: 24px;\r\n padding: 3px;\r\n box-sizing: border-box;\r\n border: 1px solid transparent;\r\n transition: all linear 0.3s;\r\n display: flex;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n &:before {\r\n content: \"\";\r\n background: ${palette.grey.zero};\r\n border-radius: 50%;\r\n height: 100%;\r\n transition: all ease-out 0.3s;\r\n margin-left: 0;\r\n }\r\n ${switchVariantCSS};\r\n ${switchErrorCSS};\r\n`\r\n\r\nconst StyledSwitch = styled.input`\r\n opacity: 0;\r\n position: absolute;\r\n z-index: -1;\r\n &:checked + .KUI-Switch_custom {\r\n background-color: ${palette.brand.main};\r\n &:before {\r\n margin-left: calc(100% - ${({ variant }) => `${variant.before}px`});\r\n }\r\n }\r\n &:disabled + .KUI-Switch_custom {\r\n background-color: ${palette.grey.zero};\r\n border-color: ${palette.grey.fifteenB};\r\n &:before {\r\n background-color: ${palette.grey.fifteenB};\r\n }\r\n }\r\n`\r\n\r\nconst StyledLabel = styled.label`\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n`\r\n\r\nconst StyledSwitchLabel = styled.span`\r\n margin-left: 14px;\r\n`\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nconst Radio = forwardRef((props, ref) => {\r\n const { label, value, inputRef, ...radioProps } = props\r\n\r\n return (\r\n <StyledLabel className=\"KUI-Radio_label\">\r\n <StyledRadio\r\n ref={inputRef}\r\n value={value}\r\n type=\"radio\"\r\n className=\"KUI-Radio\"\r\n {...radioProps}\r\n />\r\n <StyledCustomRadio className=\"KUI-Radio_custom\" />\r\n {!!label && (\r\n <StyledRadioLabel className=\"KUI-Label_radio\">{label}</StyledRadioLabel>\r\n )}\r\n </StyledLabel>\r\n )\r\n})\r\n\r\nRadio.defaultProps = {\r\n label: \"\",\r\n value: \"\",\r\n name: \"radio\",\r\n}\r\n\r\nRadio.propTypes = {\r\n label: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n}\r\n\r\nRadio.displayName = \"Radio\"\r\n\r\nexport default Radio\r\n\r\nconst StyledCustomRadio = styled.span`\r\n border-radius: 50%;\r\n padding: 1px;\r\n width: 20px;\r\n height: 20px;\r\n box-sizing: border-box;\r\n border: 1px solid ${palette.grey.fifteenB};\r\n transition: all linear 0.3s;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n &:before {\r\n content: \"\";\r\n display: block;\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 50%;\r\n background-color: ${palette.grey.zero};\r\n transition: all linear 0.2s;\r\n }\r\n`\r\n\r\nconst StyledRadio = styled.input`\r\n opacity: 0;\r\n position: absolute;\r\n z-index: -1;\r\n &:checked + .KUI-Radio_custom:before {\r\n background-color: ${palette.brand.main};\r\n background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z\" fill=\"%23fff\"/%3E%3C/svg%3E');\r\n }\r\n &:disabled + .KUI-Radio_custom {\r\n background-color: ${palette.background.light2};\r\n border-color: ${palette.background.light2};\r\n &:before {\r\n background-color: ${palette.background.light2};\r\n }\r\n }\r\n &:disabled:checked + .KUI-Radio_custom:before {\r\n background-color: ${palette.grey.fifteenB};\r\n }\r\n`\r\n\r\nconst StyledLabel = styled.label`\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n &:hover {\r\n .KUI-Radio:not(:disabled):not(:checked) + .KUI-Radio_custom {\r\n border-color: ${palette.brand.main};\r\n }\r\n .KUI-Radio:not(:disabled):checked + .KUI-Radio_custom {\r\n border-color: ${palette.brand.light};\r\n }\r\n }\r\n`\r\n\r\nconst StyledRadioLabel = styled.span`\r\n margin-left: 14px;\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst FileIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M6.10782 5.22682C6.33097 5.00366 6.69278 5.00366 6.91594 5.22682C7.13909 5.44998 7.13909 5.81179 6.91594 6.03494L4.53198 8.4189C4.20799 8.74289 4.18918 9.28829 4.53198 9.63109C4.87477 9.97388 5.42017 9.95507 5.74416 9.63109L10.1888 5.18642C11.104 4.2712 11.054 2.81907 10.1888 1.95393C9.32369 1.08879 7.87156 1.03871 6.95634 1.95393L2.51167 6.3986C1.05411 7.85616 1.08129 10.221 2.51167 11.6514C3.94205 13.0818 6.3069 13.109 7.76447 11.6514L10.1484 9.26743C10.3716 9.04427 10.7334 9.04427 10.9565 9.26743C11.1797 9.49059 11.1797 9.8524 10.9565 10.0756L8.57259 12.4595C6.6645 14.3676 3.57614 14.3321 1.70355 12.4595C-0.169037 10.5869 -0.204535 7.49856 1.70355 5.59048L6.14822 1.14581C7.52269 -0.228658 9.69748 -0.153665 10.997 1.14581C12.2964 2.44528 12.3714 4.62007 10.997 5.99454L6.55228 10.4392C5.79396 11.1975 4.5259 11.2413 3.72386 10.4392C2.92181 9.63716 2.96554 8.3691 3.72386 7.61078L6.10782 5.22682Z\"\r\n fill=\"#7F8285\"\r\n />\r\n </svg>\r\n)\r\n\r\nFileIcon.defaultProps = {\r\n width: 12,\r\n height: 14,\r\n}\r\n\r\nFileIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default FileIcon\r\n","import React, { forwardRef, useState } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport Text from \"../Text\"\r\nimport FileIcon from \"../../icons/FileIcon\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nconst InputFile = forwardRef((props, ref) => {\r\n const { className, label, name, ...inputProps } = props\r\n const [value, setValue] = useState(label)\r\n\r\n const setFileName = (e) => {\r\n if (e.target.files[0]) {\r\n setValue(e.target.files[0].name)\r\n } else {\r\n setValue(label)\r\n }\r\n\r\n if (inputProps.onInput) inputProps.onInput(e)\r\n }\r\n\r\n return (\r\n <StyledWrapper className={classNames(\"KUI-InputFile_wrapper\", className)}>\r\n <StyledLabel className=\"KUI-InputFile_label\">\r\n <StyledInput\r\n type=\"file\"\r\n className=\"KUI-InputFile\"\r\n {...inputProps}\r\n onInput={setFileName}\r\n />\r\n\r\n <StyledTitle\r\n active={value !== label}\r\n size=\"s\"\r\n className={classNames(\r\n \"KUI-InputFile_title\",\r\n value !== label && \"KUI-InputFile_value\"\r\n )}\r\n >\r\n {value}\r\n </StyledTitle>\r\n <FileIcon />\r\n </StyledLabel>\r\n </StyledWrapper>\r\n )\r\n})\r\n\r\nInputFile.displayName = \"InputFile\"\r\n\r\nInputFile.propTypes = {\r\n label: PropTypes.string,\r\n}\r\n\r\nexport default InputFile\r\n\r\nconst StyledWrapper = styled.div`\r\n background-color: ${palette.grey.zero};\r\n border: 1px solid ${palette.grey.fifteenB};\r\n height: 56px;\r\n box-sizing: border-box;\r\n border-radius: 8px;\r\n padding: 0 16px;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n`\r\n\r\nconst StyledInput = styled.input`\r\n display: none;\r\n`\r\n\r\nconst StyledLabel = styled.label`\r\n display: flex;\r\n cursor: pointer;\r\n justify-content: space-between;\r\n align-items: center;\r\n height: 100%;\r\n`\r\nconst titleActiveCSS = css`\r\n color: ${palette.grey.seventy};\r\n font-weight: 500;\r\n`\r\n\r\nconst StyledTitle = styled(Text)`\r\n color: ${palette.grey.fiftyP};\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n max-width: calc(100% - 20px);\r\n ${({ active }) => active && titleActiveCSS};\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nfunction Divider({ className }) {\r\n return <StyledDivider className={classNames(\"KUI-Divider\", className)} />\r\n}\r\n\r\nDivider.defaultProps = {\r\n className: \"\",\r\n}\r\n\r\nDivider.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default Divider\r\n\r\nconst StyledDivider = styled.hr`\r\n height: 1px;\r\n border: none;\r\n background-color: ${theme.palette.grey.fifteenB};\r\n margin: 0;\r\n`\r\n","import React, { forwardRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst breakpoints = theme.breakpoints\r\n\r\nconst Container = forwardRef(({ className, ...props }, ref) => (\r\n <StyledContainer\r\n ref={ref}\r\n className={classNames(\"KUI-Container\", className)}\r\n {...props}\r\n />\r\n))\r\n\r\nContainer.displayName = \"Container\"\r\n\r\nexport default Container\r\n\r\nconst StyledContainer = styled.div`\r\n margin: 0 auto;\r\n box-sizing: border-box;\r\n padding: 0 16px;\r\n width: 100%;\r\n @media (min-width: 1280px) {\r\n max-width: 1280px;\r\n }\r\n @media (min-width: ${breakpoints.xs}px) {\r\n padding: 0 24px;\r\n }\r\n`\r\n","import React, { forwardRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst breakpoints = theme.breakpoints\r\n\r\nconst Grid = forwardRef(\r\n ({ item, container, className, ...otherProps }, ref) => (\r\n <StyledGrid\r\n ref={ref}\r\n item={item}\r\n container={container}\r\n className={classNames(\r\n item && \"KUI-Grid_Item\",\r\n container && \"KUI-Grid_Container\",\r\n className\r\n )}\r\n {...otherProps}\r\n />\r\n )\r\n)\r\n\r\nGrid.displayName = \"Grid\"\r\n\r\nGrid.propTypes = {\r\n spacing: PropTypes.number,\r\n justify: PropTypes.oneOf([\r\n \"center\",\r\n \"flex-start\",\r\n \"flex-end\",\r\n \"space-between\",\r\n ]),\r\n alignItems: PropTypes.oneOf([\"center\", \"flex-start\", \"flex-end\"]),\r\n alignContent: PropTypes.oneOf([\"center\", \"flex-start\", \"flex-end\"]),\r\n direction: PropTypes.oneOf([\"column\", \"row\"]),\r\n}\r\n\r\nexport default Grid\r\n\r\nconst containerSpacingCSS = (spacing) => css`\r\n width: calc(100% + (${theme.settings.spacing} * ${spacing}px));\r\n margin-top: calc(0px - ((${theme.settings.spacing} * ${spacing}px)));\r\n margin-left: calc(0px - ((${theme.settings.spacing} * ${spacing}px)));\r\n & > .KUI-Grid_Item {\r\n padding-left: calc((${theme.settings.spacing} * ${spacing}px));\r\n padding-top: calc((${theme.settings.spacing} * ${spacing}px));\r\n }\r\n`\r\n\r\nconst containerCSS = (props) => css`\r\n display: flex;\r\n flex-wrap: ${props.wrap || \"wrap\"};\r\n box-sizing: border-box;\r\n width: 100%;\r\n justify-content: ${props.justify || \"unset\"};\r\n align-items: ${props.alignItems || \"unset\"};\r\n align-content: ${props.alignContent || \"unset\"};\r\n flex-direction: ${props.direction || \"unset\"};\r\n ${props.spacing && containerSpacingCSS(props.spacing)}\r\n`\r\n\r\nconst itemSizeCSS = (size) =>\r\n size &&\r\n css`\r\n max-width: ${size === \"auto\"\r\n ? \"auto\"\r\n : `calc(100% / (${theme.settings.columns} / ${size}))`};\r\n flex-basis: ${size === \"auto\"\r\n ? \"auto\"\r\n : `calc(100% / (${theme.settings.columns} / ${size}))`};\r\n `\r\n\r\nconst itemCSS = (props) => css`\r\n margin: 0;\r\n box-sizing: border-box;\r\n flex-grow: 0;\r\n @media (min-width: 0px) {\r\n ${itemSizeCSS(props.xs)};\r\n }\r\n @media (min-width: ${breakpoints.xs + 1}px) {\r\n ${itemSizeCSS(props.sm)};\r\n }\r\n @media (min-width: ${breakpoints.sm + 1}px) {\r\n ${itemSizeCSS(props.md)};\r\n }\r\n @media (min-width: ${breakpoints.md + 1}px) {\r\n ${itemSizeCSS(props.lg)};\r\n }\r\n @media (min-width: ${breakpoints.xl}px) {\r\n ${itemSizeCSS(props.xl)};\r\n }\r\n`\r\n\r\nconst StyledGrid = styled.div`\r\n ${({ item, ...other }) => item && itemCSS(other)}\r\n ${({ container, ...other }) => container && containerCSS(other)}\r\n`\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { spacing } = theme.settings\r\nconst Box = forwardRef((props, ref) => <StyledBox ref={ref} {...props} />)\r\n\r\nBox.propTypes = {\r\n pt: PropTypes.number,\r\n pb: PropTypes.number,\r\n pr: PropTypes.number,\r\n pl: PropTypes.number,\r\n mt: PropTypes.number,\r\n mb: PropTypes.number,\r\n mr: PropTypes.number,\r\n ml: PropTypes.number,\r\n}\r\n\r\nBox.displayName = \"Box\"\r\n\r\nexport default Box\r\n\r\nconst StyledBox = styled.div`\r\n ${({ mt }) => mt && `margin-top: ${mt * spacing}px`};\r\n ${({ mb }) => mb && `margin-bottom: ${mb * spacing}px`};\r\n ${({ mr }) => mr && `margin-right: ${mr * spacing}px`};\r\n ${({ ml }) => ml && `margin-left: ${ml * spacing}px`};\r\n\r\n ${({ pt }) => pt && `padding-top: ${pt * spacing}px`};\r\n ${({ pb }) => pb && `padding-bottom: ${pb * spacing}px`};\r\n ${({ pr }) => pr && `padding-right: ${pr * spacing}px`};\r\n ${({ pl }) => pl && `padding-left: ${pl * spacing}px`};\r\n`\r\n","import React, { useRef } from \"react\"\r\nimport styled from \"@emotion/styled\"\r\nimport classNames from \"classnames\"\r\n\r\nfunction Accordion(props) {\r\n const { children, onChange, expanded, className, disabled, ...otherProps } =\r\n props\r\n const detailsBlock = useRef(null)\r\n const [summary, ...otherChildren] = React.Children.toArray(children)\r\n\r\n const handleTransitionEnd = () => {\r\n if (detailsBlock.current.style.height !== \"0px\") {\r\n detailsBlock.current.style.height = \"auto\"\r\n }\r\n }\r\n\r\n return (\r\n <StyledAccordion\r\n className={classNames(\"KUI-Accordion\", className)}\r\n {...otherProps}\r\n >\r\n <div>\r\n {React.cloneElement(summary, {\r\n detailsBlock,\r\n onChange,\r\n expanded,\r\n disabled,\r\n })}\r\n </div>\r\n <StyledCollapse\r\n className=\"KUI-Collapse\"\r\n onTransitionEnd={handleTransitionEnd}\r\n ref={detailsBlock}\r\n >\r\n {otherChildren}\r\n </StyledCollapse>\r\n </StyledAccordion>\r\n )\r\n}\r\n\r\nexport default Accordion\r\n\r\nconst StyledAccordion = styled.div`\r\n cursor: pointer;\r\n -webkit-tap-highlight-color: transparent;\r\n`\r\n\r\nconst StyledCollapse = styled.div`\r\n height: 0;\r\n overflow: hidden;\r\n transition: height 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n`\r\n","import React, { useEffect, useState } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\n\r\nfunction AccordionSummary({\r\n detailsBlock,\r\n expanded: defaultExpanded,\r\n onChange,\r\n className,\r\n children,\r\n expandIcon,\r\n contentStyles,\r\n expandedStyles,\r\n iconStyles,\r\n disabled,\r\n ...otherProps\r\n}) {\r\n const [expanded, setExpanded] = useState(!!defaultExpanded)\r\n\r\n const handleClick = () => {\r\n setExpanded((prev) => !prev)\r\n }\r\n\r\n useEffect(() => {\r\n setExpanded(defaultExpanded)\r\n }, [defaultExpanded])\r\n\r\n useEffect(() => {\r\n if (detailsBlock) {\r\n if (expanded) {\r\n detailsBlock.current.style.height = `${detailsBlock.current?.scrollHeight}px`\r\n } else {\r\n detailsBlock.current.style.height = `${detailsBlock.current?.scrollHeight}px`\r\n window\r\n .getComputedStyle(detailsBlock.current, null)\r\n .getPropertyValue(\"height\")\r\n detailsBlock.current.style.height = \"0\"\r\n }\r\n }\r\n if (onChange) {\r\n onChange(expanded)\r\n }\r\n }, [expanded])\r\n\r\n return (\r\n <StyledAccordionSummary\r\n onClick={handleClick}\r\n className={classNames(\r\n \"KUI-Accordion_Summary\",\r\n disabled && \"KUI-Accordion_Summary-disabled\",\r\n className\r\n )}\r\n {...otherProps}\r\n >\r\n <StyledSummaryContent\r\n className={classNames(\r\n \"KUI-Accordion_Summary-Content\",\r\n expanded && \"KUI-Accordion_expanded\",\r\n expanded && expandedStyles,\r\n contentStyles\r\n )}\r\n expanded={expanded}\r\n >\r\n {children}\r\n </StyledSummaryContent>\r\n <StyledSummaryIcon\r\n expanded={expanded}\r\n className={classNames(\r\n \"KUI-Accordion_Summary-Icon\",\r\n expanded && \"KUI-Accordion_expanded\",\r\n expanded && expandedStyles,\r\n iconStyles\r\n )}\r\n >\r\n {expandIcon}\r\n </StyledSummaryIcon>\r\n </StyledAccordionSummary>\r\n )\r\n}\r\n\r\nAccordionSummary.propTypes = {\r\n expandIcon: PropTypes.element,\r\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n}\r\n\r\nexport default AccordionSummary\r\n\r\nconst StyledAccordionSummary = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n`\r\n\r\nconst StyledSummaryContent = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"expanded\",\r\n})`\r\n margin: 12px 0;\r\n display: flex;\r\n width: 100%;\r\n transition: margin 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n .KUI-Accordion_Summary-disabled {\r\n pointer-events: none;\r\n }\r\n`\r\n\r\nconst StyledSummaryIcon = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"expanded\",\r\n})`\r\n transform: ${({ expanded }) =>\r\n expanded ? \"rotate(180deg)\" : \"rotate(0deg)\"};\r\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n`\r\n","import React from \"react\"\r\n\r\nfunction AccordionDetails(props) {\r\n return <div {...props} />\r\n}\r\n\r\nexport default AccordionDetails\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport { keyframes } from \"@emotion/react\"\r\nimport styled from \"@emotion/styled\"\r\n\r\nfunction Skeleton({ className, ...otherProps }) {\r\n return (\r\n <StyledSkeleton\r\n className={classNames(\"KUI-Skeleton\", className)}\r\n {...otherProps}\r\n />\r\n )\r\n}\r\n\r\nexport default Skeleton\r\n\r\nconst waveAnim = keyframes`\r\n 0% {\r\n transform: translateX(-100%);\r\n }\r\n 50% {\r\n transform: translateX(100%);\r\n }\r\n 100% {\r\n transform: translateX(100%);\r\n }\r\n`\r\n\r\nconst StyledSkeleton = styled.span`\r\n overflow: hidden;\r\n position: relative;\r\n display: block;\r\n background-color: rgba(0, 0, 0, 0.11);\r\n height: 1.2em;\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n padding-top: 100%;\r\n }\r\n &::after {\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n content: \"\";\r\n position: absolute;\r\n animation: ${waveAnim} 1.6s linear 0.5s infinite;\r\n transform: translateX(-100%);\r\n background: linear-gradient(\r\n 90deg,\r\n transparent,\r\n rgba(0, 0, 0, 0.04),\r\n transparent\r\n );\r\n }\r\n`\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\n\r\nfunction AppBar({ className, isFixed, ...otherProps }) {\r\n return (\r\n <StyledAppBar\r\n isFixed={isFixed}\r\n className={classNames(\r\n \"KUI-AppBar\",\r\n isFixed && \"KUI-AppBar_fixed\",\r\n className\r\n )}\r\n {...otherProps}\r\n />\r\n )\r\n}\r\n\r\nAppBar.propTypes = {\r\n isFixed: PropTypes.bool,\r\n}\r\n\r\nAppBar.defaultProps = {\r\n isFixed: true,\r\n}\r\n\r\nexport default AppBar\r\n\r\nconst fixesBarCSS = ({ isFixed }) =>\r\n isFixed &&\r\n css`\r\n top: 0;\r\n left: auto;\r\n right: 0;\r\n position: fixed;\r\n `\r\n\r\nconst StyledAppBar = styled.header`\r\n width: 100%;\r\n display: flex;\r\n z-index: 1100;\r\n box-sizing: border-box;\r\n flex-shrink: 0;\r\n background: #fff;\r\n ${fixesBarCSS};\r\n`\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { breakpoints } = theme\r\n\r\nfunction ToolBar({ className, ...otherProps }) {\r\n return (\r\n <StyledTollBar\r\n className={classNames(\"KUI-ToolBar\", className)}\r\n {...otherProps}\r\n />\r\n )\r\n}\r\n\r\nexport default ToolBar\r\n\r\nconst StyledTollBar = styled.div`\r\n display: flex;\r\n position: relative;\r\n align-items: center;\r\n padding: 0px;\r\n min-height: 64px;\r\n @media (max-width: ${breakpoints.xs}px) {\r\n min-height: 48px;\r\n }\r\n`\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport { keyframes } from \"@emotion/react\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst palette = theme.palette\r\n\r\nfunction CircularProgress({\r\n className,\r\n svgStyles,\r\n circleStyles,\r\n ...otherProps\r\n}) {\r\n return (\r\n <StyledProgress\r\n className={classNames(\"KUI-CircularProgress\", className)}\r\n {...otherProps}\r\n >\r\n <StyledSVG\r\n className={classNames(\"KUI-CircularProgress_svg\", svgStyles)}\r\n viewBox=\"22 22 44 44\"\r\n >\r\n <StyledCircle\r\n className={classNames(\"KUI-CircularProgress_circle\", circleStyles)}\r\n cx=\"44\"\r\n cy=\"44\"\r\n r=\"20.2\"\r\n fill=\"none\"\r\n strokeWidth=\"3.6\"\r\n />\r\n </StyledSVG>\r\n </StyledProgress>\r\n )\r\n}\r\n\r\nexport default CircularProgress\r\n\r\nconst rotateAnimate = keyframes`\r\n 0% {\r\n transform-origin: 50% 50%;\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n`\r\n\r\nconst circleAnimate = keyframes`\r\n 0% {\r\n stroke-dasharray: 1px, 200px;\r\n stroke-dashoffset: 0px;\r\n }\r\n 50% {\r\n stroke-dasharray: 100px, 200px;\r\n stroke-dashoffset: -15px;\r\n }\r\n 100% {\r\n stroke-dasharray: 100px, 200px;\r\n stroke-dashoffset: -125px;\r\n }\r\n`\r\n\r\nconst StyledProgress = styled.div`\r\n color: ${palette.brand.main};\r\n width: 40px;\r\n height: 40px;\r\n display: inline-block;\r\n animation: ${rotateAnimate} 1.4s linear infinite;\r\n`\r\n\r\nconst StyledSVG = styled.svg`\r\n display: block;\r\n`\r\n\r\nconst StyledCircle = styled.circle`\r\n stroke: currentColor;\r\n animation: ${circleAnimate} 1.4s ease-in-out infinite;\r\n stroke-dasharray: 80px, 200px;\r\n stroke-dashoffset: 0px;\r\n`\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\n\r\nfunction LinearProgress({\r\n className,\r\n progressBarStyles,\r\n value,\r\n ...otherProps\r\n}) {\r\n let newValue = value\r\n\r\n if (value > 100) {\r\n newValue = 100\r\n }\r\n\r\n return (\r\n <StyledLinearProgress\r\n className={classNames(\"KUI-LinearProgress\", className)}\r\n aria-valuenow={newValue}\r\n {...otherProps}\r\n >\r\n <StyledLinearProgressBar\r\n className={classNames(\"KUI-LinearProgress_bar\", progressBarStyles)}\r\n style={{ transform: `translateX(${newValue - 100}%)` }}\r\n />\r\n </StyledLinearProgress>\r\n )\r\n}\r\n\r\nLinearProgress.defaultProps = {\r\n value: 0,\r\n}\r\n\r\nexport default LinearProgress\r\n\r\nconst StyledLinearProgress = styled.div`\r\n overflow: hidden;\r\n position: relative;\r\n backdrop-filter: blur(4px);\r\n background-color: rgba(255, 255, 255, 0.55);\r\n border-radius: 66px;\r\n height: 6px;\r\n`\r\n\r\nconst StyledLinearProgressBar = styled.div`\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n bottom: 0;\r\n position: absolute;\r\n transition: transform 0.4s linear;\r\n transform-origin: left;\r\n opacity: 0.9;\r\n border-radius: 66px;\r\n background-color: white;\r\n`\r\n","import React, { forwardRef, useEffect, useRef, useState } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nconst nextItem = (list, item) => {\r\n if (list === item) {\r\n return list.firstChild\r\n }\r\n if (item && item.nextElementSibling) {\r\n return item.nextElementSibling\r\n }\r\n return list.firstChild\r\n}\r\n\r\nconst previousItem = (list, item) => {\r\n if (list === item) {\r\n return list.lastChild\r\n }\r\n if (item && item.previousElementSibling) {\r\n return item.previousElementSibling\r\n }\r\n return list.lastChild\r\n}\r\n\r\nconst moveFocus = (list, currentFocus, traversalFunction) => {\r\n const nextFocus = traversalFunction(list, currentFocus)\r\n\r\n nextFocus.focus()\r\n}\r\n\r\nconst Tabs = forwardRef((props, ref) => {\r\n const {\r\n value,\r\n onChange,\r\n className,\r\n indicatorPos,\r\n indicatorHidden,\r\n children: childrenProp,\r\n ...otherProps\r\n } = props\r\n const tabListRef = useRef(null)\r\n const [indicatorStyles, setIndicatorStyles] = useState({})\r\n\r\n const handleKeyDown = (e) => {\r\n const list = tabListRef.current\r\n const currFocus = list.ownerDocument.activeElement\r\n switch (e.key) {\r\n case \"ArrowLeft\":\r\n e.preventDefault()\r\n moveFocus(list, currFocus, previousItem)\r\n break\r\n case \"ArrowRight\":\r\n e.preventDefault()\r\n moveFocus(list, currFocus, nextItem)\r\n break\r\n case \"Home\":\r\n e.preventDefault()\r\n moveFocus(list, currFocus, nextItem)\r\n break\r\n case \"End\":\r\n e.preventDefault()\r\n moveFocus(list, currFocus, previousItem)\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n const children = React.Children.map(childrenProp, (child, childIndex) => {\r\n if (!React.isValidElement(child)) {\r\n return null\r\n }\r\n\r\n const childValue =\r\n child.props.value === undefined ? childIndex : child.props.value\r\n const selected = childValue === value\r\n\r\n return React.cloneElement(child, {\r\n selected,\r\n onChange,\r\n value: childValue,\r\n })\r\n })\r\n\r\n useEffect(() => {\r\n const selectedTab = tabListRef.current?.children[value]\r\n setIndicatorStyles({\r\n width: selectedTab?.clientWidth,\r\n // transform: `translateX(${selectedTab?.offsetLeft})`,\r\n left: selectedTab?.offsetLeft,\r\n })\r\n }, [value])\r\n\r\n return (\r\n <StyledTabs ref={ref} className=\"KUI-Tabs\" {...otherProps}>\r\n <StyledTabList\r\n tabIndex={0}\r\n role=\"tablist\"\r\n className={classNames(\"KUI-TabList\", className)}\r\n ref={tabListRef}\r\n onKeyDown={handleKeyDown}\r\n >\r\n {children}\r\n </StyledTabList>\r\n <StyledTabsIndicator\r\n hidden={indicatorHidden}\r\n position={indicatorPos}\r\n className={classNames(\r\n \"KUI-Tabs_indicator\",\r\n indicatorHidden && \"KUI-Tabs_hidden\"\r\n )}\r\n style={indicatorStyles}\r\n />\r\n </StyledTabs>\r\n )\r\n})\r\n\r\nTabs.propTypes = {\r\n indicatorPos: PropTypes.oneOf([\"bottom\", \"top\"]),\r\n}\r\n\r\nTabs.defaultProps = {\r\n indicatorPos: \"bottom\",\r\n}\r\n\r\nexport default Tabs\r\n\r\nconst indicatorPositionsCSS = {\r\n top: css`\r\n top: 0;\r\n border-radius: 0 0 8px 8px;\r\n `,\r\n bottom: css`\r\n bottom: 0;\r\n border-radius: 8px 8px 0px 0px;\r\n `,\r\n}\r\n\r\nconst StyledTabs = styled.div`\r\n position: relative;\r\n`\r\n\r\nconst StyledTabList = styled.div`\r\n display: flex;\r\n`\r\n\r\nconst StyledTabsIndicator = styled.span`\r\n position: absolute;\r\n background-color: ${palette.brand.main};\r\n transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\r\n left 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n height: 2px;\r\n will-change: left;\r\n opacity: ${({ hidden }) => (hidden ? 0 : 1)};\r\n ${({ position }) => indicatorPositionsCSS[position]};\r\n`\r\n","import React, { forwardRef, useRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport Caption from \"../Caption\"\r\n\r\nconst Tab = forwardRef((props, ref) => {\r\n const { selected, value, className, onChange, onClick, ...other } = props\r\n const tabRef = useRef()\r\n\r\n const handleClick = (e) => {\r\n if (!selected && onChange) {\r\n onChange(e, value)\r\n }\r\n\r\n if (onClick) {\r\n onClick(e)\r\n }\r\n }\r\n\r\n const forwardedRef = (elem) => {\r\n if (ref) {\r\n ref.current = elem\r\n }\r\n tabRef.current = elem\r\n }\r\n\r\n return (\r\n <StyledTab\r\n className={classNames(\r\n \"KUI-Tab\",\r\n selected && \"KUI-Tab_selected\",\r\n className\r\n )}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={selected}\r\n tabIndex={selected ? 0 : -1}\r\n aria-controls={`tabpanel-${value}`}\r\n id={`tab-${value}`}\r\n ref={forwardedRef}\r\n onClick={handleClick}\r\n {...other}\r\n >\r\n {typeof other.label === \"string\" ? (\r\n <Caption weight={600} size=\"sm\" color=\"white\">\r\n {other.label}\r\n </Caption>\r\n ) : (\r\n other.label\r\n )}\r\n </StyledTab>\r\n )\r\n})\r\n\r\nTab.propTypes = {\r\n label: PropTypes.string,\r\n}\r\n\r\nexport default Tab\r\n\r\nconst StyledTab = styled.button`\r\n height: 64px;\r\n border: none;\r\n background: transparent;\r\n cursor: pointer;\r\n margin-right: 24px;\r\n padding: 0;\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n > p {\r\n white-space: nowrap;\r\n }\r\n`\r\n","import React, { forwardRef, useEffect, useRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport Tabs from \"../Tabs\"\r\nimport Tab from \"../Tab\"\r\n\r\nconst TabsPanel = forwardRef((props, ref) => {\r\n const {\r\n tabs,\r\n tabPanels,\r\n paths,\r\n activeTab,\r\n onChange,\r\n indicatorPos,\r\n ...other\r\n } = props\r\n const [value, setValue] = React.useState(Number(activeTab))\r\n const tabsRef = useRef(null)\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue)\r\n if (paths && paths.length > 0) {\r\n window.history.pushState({ route: paths[newValue] }, \"\", paths[newValue])\r\n }\r\n if (onChange) {\r\n onChange(event, newValue)\r\n }\r\n\r\n tabsRef.current?.scrollTo({\r\n left: event.target.offsetLeft,\r\n behavior: \"smooth\",\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n setValue(Number(activeTab))\r\n }, [activeTab])\r\n\r\n return (\r\n <div ref={ref} {...other}>\r\n <StyledTabsWrapper ref={tabsRef} className=\"KUI-TabsWrapper\">\r\n <Tabs value={value} onChange={handleChange} indicatorPos={indicatorPos}>\r\n {tabs.map((item) => (\r\n <Tab label={item} key={item} />\r\n ))}\r\n </Tabs>\r\n </StyledTabsWrapper>\r\n {tabPanels?.map((item, index) => (\r\n <div\r\n key={index}\r\n role=\"tabpanel\"\r\n hidden={value !== index}\r\n id={`tabpanel-${index}`}\r\n aria-labelledby={`tab-${index}`}\r\n >\r\n {value === index && item}\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n})\r\n\r\nTabsPanel.propTypes = {\r\n indicatorPos: PropTypes.oneOf([\"bottom\", \"top\"]),\r\n}\r\n\r\nexport default TabsPanel\r\n\r\nconst StyledTabsWrapper = styled.div`\r\n overflow-x: scroll;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n &::-webkit-scrollbar {\r\n width: 0;\r\n }\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n`\r\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.indexOf(spyHandler) > -1 && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length && scrollSpy.spySetState.indexOf(stateHandler) > -1) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(history.state, \"\", urlToPush) : history.replaceState(history.state, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n activeStyle: _propTypes2.default.object,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var style = {};\n\n if (this.state && this.state.active) {\n style = _extends({}, this.props.style, this.props.activeStyle);\n } else {\n style = _extends({}, this.props.style);\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.style = style;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","import React, { useEffect, useRef } from \"react\"\r\nimport { Link, scroller, Events } from \"react-scroll\"\r\nimport styled from \"@emotion/styled\"\r\nimport Caption from \"../Caption\"\r\n\r\nconst ScrollTab = ({\r\n selected,\r\n value,\r\n label,\r\n name,\r\n onChange,\r\n offset,\r\n isScrolling,\r\n setIsScrolling,\r\n setIsIndicatorHidden,\r\n isActive,\r\n setIsActive,\r\n}) => {\r\n const activeRef = useRef(true)\r\n const scrollingRef = useRef(isScrolling)\r\n\r\n const handleSelect = (e) => {\r\n setTimeout(() => {\r\n setIsIndicatorHidden(false)\r\n setIsActive(true)\r\n })\r\n if (!isScrolling && onChange) {\r\n onChange(e, value)\r\n }\r\n }\r\n\r\n const handleInactive = () => {\r\n setIsActive(false)\r\n setTimeout(() => {\r\n if (!activeRef.current && !scrollingRef.current) {\r\n setIsIndicatorHidden(true)\r\n }\r\n }, 10)\r\n }\r\n\r\n useEffect(() => {\r\n activeRef.current = isActive\r\n }, [isActive])\r\n\r\n useEffect(() => {\r\n scrollingRef.current = isScrolling\r\n }, [isScrolling])\r\n\r\n const handleKeyDown = (e) => {\r\n switch (e.key) {\r\n case \"Enter\":\r\n handleSelect(e)\r\n scroller.scrollTo(name, { offset })\r\n break\r\n case \"Space\":\r\n handleSelect(e)\r\n scroller.scrollTo(name, { offset })\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n const startScrolling = () => {\r\n setIsScrolling(true)\r\n }\r\n\r\n const endScrolling = () => {\r\n setIsScrolling(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (selected) {\r\n scroller.scrollTo(name, { offset })\r\n }\r\n\r\n Events.scrollEvent.register(\"begin\", (to, element) => {\r\n startScrolling()\r\n })\r\n\r\n Events.scrollEvent.register(\"end\", (to, element) => {\r\n setTimeout(endScrolling)\r\n })\r\n\r\n return () => {\r\n Events.scrollEvent.remove(\"begin\")\r\n Events.scrollEvent.remove(\"end\")\r\n }\r\n }, [])\r\n\r\n const handleClick = (e) => {\r\n if (!selected && onChange) {\r\n onChange(e, value)\r\n }\r\n }\r\n\r\n return (\r\n <StyledScrollTab\r\n to={name}\r\n spy\r\n smooth\r\n duration={600}\r\n offset={offset}\r\n onSetActive={handleSelect}\r\n onSetInactive={handleInactive}\r\n className=\"KUI-ScrollTab\"\r\n role=\"tab\"\r\n aria-selected={selected}\r\n tabIndex={selected ? 0 : -1}\r\n aria-controls={`tabpanel-${value}`}\r\n id={`tab-${value}`}\r\n onKeyDown={handleKeyDown}\r\n onClick={handleClick}\r\n >\r\n <Caption weight={600} size=\"sm\" color=\"white\">\r\n {label}\r\n </Caption>\r\n </StyledScrollTab>\r\n )\r\n}\r\n\r\nexport default ScrollTab\r\n\r\nconst StyledScrollTab = styled(Link)`\r\n margin-right: 24px;\r\n height: 64px;\r\n border: none;\r\n background: transparent;\r\n cursor: pointer;\r\n padding: 0;\r\n display: flex;\r\n align-items: center;\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n`\r\n","import React, { forwardRef, useEffect, useState } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport Tabs from \"../Tabs\"\r\nimport ScrollTab from \"../ScrollTab\"\r\n\r\nconst MenuPanel = forwardRef((props, ref) => {\r\n const { tabs, tabsId, activeTab, onChange, indicatorPos, offset, ...other } =\r\n props\r\n const [value, setValue] = React.useState(Number(activeTab))\r\n const [isIndicatorHidden, setIsIndicatorHidden] = useState(false)\r\n const [isScrolling, setIsScrolling] = useState(false)\r\n const [isActive, setIsActive] = useState(true)\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue)\r\n if (onChange) {\r\n onChange(event, newValue)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setValue(Number(activeTab))\r\n }, [activeTab])\r\n\r\n return (\r\n <Tabs\r\n ref={ref}\r\n value={value}\r\n onChange={handleChange}\r\n indicatorPos={indicatorPos}\r\n indicatorHidden={isIndicatorHidden}\r\n {...other}\r\n >\r\n {tabs.map((item, index) => (\r\n <ScrollTab\r\n isScrolling={isScrolling}\r\n setIsScrolling={setIsScrolling}\r\n offset={offset}\r\n label={item}\r\n name={(tabsId && tabsId[index]) || item}\r\n key={item}\r\n setIsIndicatorHidden={setIsIndicatorHidden}\r\n isActive={isActive}\r\n setIsActive={setIsActive}\r\n />\r\n ))}\r\n </Tabs>\r\n )\r\n})\r\n\r\nMenuPanel.propTypes = {\r\n indicatorPos: PropTypes.oneOf([\"bottom\", \"top\"]),\r\n}\r\n\r\nexport default MenuPanel\r\n","import React, { forwardRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\n\r\nconst IconButton = forwardRef(({ className, ...props }, ref) => (\r\n <StyledButton\r\n className={classNames(\"KUI-IconButton\", className)}\r\n ref={ref}\r\n {...props}\r\n />\r\n))\r\n\r\nexport default IconButton\r\n\r\nconst StyledButton = styled.button`\r\n border: none;\r\n background: transparent;\r\n cursor: pointer;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n padding: 0;\r\n margin: 0;\r\n`\r\n","import styled from \"@emotion/styled\"\nimport classNames from \"classnames\"\nimport React, { forwardRef } from \"react\"\n\nconst Popper = forwardRef((props, ref) => {\n const {\n open,\n children,\n spacing,\n className,\n withArrow,\n withoutMobile,\n arrowRef,\n arrowPosition,\n realPlacement,\n ...other\n } = props\n\n const getArrowTopPosition = () => {\n if (arrowPosition?.y) return `${arrowPosition?.y}px`\n if (realPlacement === \"top\") return \"unset\"\n return `-3px`\n }\n\n const arrowPlacement = {\n left: `${Number(arrowPosition?.x)}px`,\n top: getArrowTopPosition(),\n bottom: realPlacement === \"top\" ? \"-3px\" : \"unset\",\n }\n\n return (\n <StyledPopperWrapper\n ref={ref}\n className={classNames(\n \"KUI-Popper\",\n open && \"KUI-Popper_open\",\n !withoutMobile && \"KUI-Popper_withMobile\",\n className\n )}\n spacing={spacing}\n {...other}\n >\n <StyledPopper open={!!open}>\n {children}\n {withArrow && (\n <StyledArrow\n ref={arrowRef}\n style={arrowPlacement}\n className={classNames(\n \"KUI-Popper_arrow\",\n !withoutMobile && \"KUI-Popper_arrow_withMobile\"\n )}\n />\n )}\n </StyledPopper>\n </StyledPopperWrapper>\n )\n})\n\nexport default Popper\n\nconst StyledPopperWrapper = styled.div`\n position: absolute;\n max-width: 215px;\n width: max-content;\n padding: ${({ spacing }) => spacing || 0};\n z-index: -1;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: all ease-out 0.3s;\n &.KUI-Popper_open {\n opacity: 1;\n z-index: 10;\n visibility: visible;\n pointer-events: auto;\n }\n @media (max-width: 600px) {\n &.KUI-Popper_withMobile {\n position: fixed !important;\n bottom: 24px !important;\n top: auto !important;\n left: 16px !important;\n width: calc(100vw - 32px);\n max-width: unset;\n transform: none !important;\n }\n }\n`\n\nconst StyledPopper = styled.div`\n padding: 16px;\n border-radius: 12px;\n background: white;\n box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.1);\n transition: opacity 0.3s ease-out;\n position: relative;\n`\n\nconst StyledArrow = styled.span`\n position: absolute;\n width: 6px;\n height: 6px;\n background: inherit;\n transform: rotate(45deg);\n border-radius: 2px;\n top: -3px;\n left: calc(50% - 3px);\n @media (max-width: 600px) {\n &.KUI-Popper_arrow_withMobile {\n display: none;\n }\n }\n`\n","function getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';\n}\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n const commonAlign = reference[length] / 2 - floating[length] / 2;\n const side = getSide(placement);\n const isVertical = mainAxis === 'x';\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const axis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. This stops `shift()` from taking action, but can\n // be worked around by calling it again after the `arrow()` if desired.\n const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? min$1 - center : max - center : 0;\n return {\n [axis]: coords[axis] - alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset + alignmentOffset\n }\n };\n }\n});\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-start\", side + \"-end\"), []);\n\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\n\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements = alignment !== undefined || allowedPlacements === allPlacements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[main], overflow[cross]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getSideObjectFromPadding(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getMainAxisFromPlacement(placement) === 'x';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getSide(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const axis = getMainAxisFromPlacement(placement);\n const isXAxis = axis === 'x';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isXAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isXAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction getWindow(node) {\n var _node$ownerDocument;\n return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return node instanceof getWindow(node).ShadowRoot || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const safari = isSafari();\n const css = getComputedStyle$1(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || !safari && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !safari && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction isSafari() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createEmptyCoords = v => ({\n x: v,\n y: v\n});\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createEmptyCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createEmptyCoords(0);\nfunction getVisualOffsets(element, isFixed, floatingOffsetParent) {\n var _win$visualViewport, _win$visualViewport2;\n if (isFixed === void 0) {\n isFixed = true;\n }\n if (!isSafari()) {\n return noOffsets;\n }\n const win = element ? getWindow(element) : window;\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== win) {\n return noOffsets;\n }\n return {\n x: ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0,\n y: ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0\n };\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createEmptyCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = getVisualOffsets(domElement, isFixedStrategy, offsetParent);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createEmptyCoords(1);\n const offsets = createEmptyCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isSafari();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createEmptyCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createEmptyCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getScale,\n async getElementRects(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n let isFirstUpdate = true;\n io = new IntersectionObserver(entries => {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }, {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n });\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = true,\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(update);\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, getOverflowAncestors, platform };\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length, i, keys;\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node != referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, [_setReference]);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, [_setFloating]);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n } else {\n update();\n }\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\nexport { arrow, useFloating };\n","import { platform, getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { hideOthers } from 'aria-hidden';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (!serverHandoffComplete) {\n serverHandoffComplete = true;\n }\n }, []);\n return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(_ref, ref) {\n let {\n context: {\n placement,\n elements: {\n floating\n },\n middlewareData: {\n arrow\n }\n },\n width = 14,\n height = 7,\n tipRadius = 0,\n strokeWidth = 0,\n staticOffset,\n stroke,\n d,\n style: {\n transform,\n ...restStyle\n } = {},\n ...rest\n } = _ref;\n if (process.env.NODE_ENV !== \"production\") {\n if (!ref) {\n console.warn('Floating UI: The `ref` prop is required for the `FloatingArrow`', 'component.');\n }\n }\n const clipPathId = useId();\n if (!floating) {\n return null;\n }\n\n // Strokes must be double the border width, this ensures the stroke's width\n // works as you'd expect.\n strokeWidth *= 2;\n const halfStrokeWidth = strokeWidth / 2;\n const svgX = width / 2 * (tipRadius / -8 + 1);\n const svgY = height / 2 * tipRadius / 4;\n const [side, alignment] = placement.split('-');\n const isRTL = platform.isRTL(floating);\n const isCustomShape = !!d;\n const isVerticalSide = side === 'top' || side === 'bottom';\n const yOffsetProp = staticOffset && alignment === 'end' ? 'bottom' : 'top';\n let xOffsetProp = staticOffset && alignment === 'end' ? 'right' : 'left';\n if (staticOffset && isRTL) {\n xOffsetProp = alignment === 'end' ? 'left' : 'right';\n }\n const arrowX = (arrow == null ? void 0 : arrow.x) != null ? staticOffset || arrow.x : '';\n const arrowY = (arrow == null ? void 0 : arrow.y) != null ? staticOffset || arrow.y : '';\n const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n const rotation = {\n top: isCustomShape ? 'rotate(180deg)' : '',\n left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n bottom: isCustomShape ? '' : 'rotate(180deg)',\n right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n }[side];\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n \"aria-hidden\": true,\n ref: ref,\n width: isCustomShape ? width : width + strokeWidth,\n height: width,\n viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n [xOffsetProp]: arrowX,\n [yOffsetProp]: arrowY,\n [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + strokeWidth / 2 + \"px)\",\n transform: \"\" + rotation + (transform != null ? transform : ''),\n ...restStyle\n }\n }), strokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n clipPath: \"url(#\" + clipPathId + \")\",\n fill: \"none\",\n stroke: stroke\n // Account for the stroke on the fill path rendered below.\n ,\n strokeWidth: strokeWidth + (d ? 0 : 1),\n d: dValue\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: strokeWidth && !d ? rest.fill : 'none',\n d: dValue\n }), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: -halfStrokeWidth,\n y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n width: width + strokeWidth,\n height: width\n })));\n});\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n var _map$get2;\n map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nfunction useFloatingNodeId(customParentId) {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null ? void 0 : tree.addNode(node);\n return () => {\n tree == null ? void 0 : tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n}\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(_ref) {\n let {\n children,\n id\n } = _ref;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n}\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(_ref2) {\n let {\n children\n } = _ref2;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [nodesRef, addNode, removeNode, events])\n }, children);\n}\n\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\n\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\nfunction getWindow(value) {\n return getDocument(value).defaultView || window;\n}\nfunction isElement(value) {\n return value ? value instanceof getWindow(value).Element : false;\n}\nfunction isHTMLElement(value) {\n return value ? value instanceof getWindow(value).HTMLElement : false;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n const androidRe = /Android/i;\n if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\n\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = 'data-floating-ui-safe-polygon';\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements: {\n domReference,\n floating\n },\n refs\n } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef();\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When dismissing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss() {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled || !handleCloseRef.current || !open) {\n return;\n }\n function onLeave(event) {\n if (isHoverOpen()) {\n onOpenChange(false, event);\n }\n }\n const html = getDocument(floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (event, runElseBranch) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onOpenChange(false, event), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false, event);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = React.useCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n }, []);\n const clearPointerEvents = React.useCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(refs.floating.current).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n }, [refs]);\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n return;\n }\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(true, event);\n }, openDelay);\n } else {\n onOpenChange(true, event);\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(floating);\n clearTimeout(restTimeoutRef.current);\n if (handleCloseRef.current) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n // Should the event expose that it was closed by `safePolygon`?\n closeWithDelay(event);\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n\n // Allow interactivity without `safePolygon` on touch devices. With a\n // pointer, a short close delay is an alternative, so it should work\n // consistently.\n const shouldClose = pointerTypeRef.current === 'touch' ? !contains(floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay(event);\n }\n })(event);\n }\n if (isElement(domReference)) {\n const ref = domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) {\n return;\n }\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n const body = getDocument(floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n if (isElement(domReference) && floating) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const ref = domReference;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n ref.style.pointerEvents = 'auto';\n floating.style.pointerEvents = 'auto';\n return () => {\n ref.style.pointerEvents = '';\n floating.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, cleanupMouseMoveHandler, clearPointerEvents]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n reference: {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n if (open || restMs === 0) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n restTimeoutRef.current = setTimeout(() => {\n if (!blockMouseMoveRef.current) {\n onOpenChange(true, event.nativeEvent);\n }\n }, restMs);\n }\n },\n floating: {\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave(event) {\n events.emit('dismiss', {\n type: 'mouseLeave',\n data: {\n returnFocus: false\n }\n });\n closeWithDelay(event.nativeEvent, false);\n }\n }\n };\n }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n}\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: () => {},\n setState: () => {},\n isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n let {\n children,\n delay,\n timeoutMs = 0\n } = _ref;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n setState({\n isInstantPhase: false\n });\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setState, setCurrentId])\n }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n let {\n open,\n onOpenChange\n } = _ref2;\n let {\n id\n } = _ref3;\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = useDelayGroupContext();\n index(() => {\n if (currentId) {\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }\n }, [id, onOpenChange, setState, currentId, initialDelay]);\n index(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n } else {\n unset();\n }\n }\n }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n index(() => {\n if (open) {\n setCurrentId(id);\n }\n }, [open, setCurrentId, id]);\n};\n\n/**\n * Find the real active element. Traverses into shadowRoots.\n */\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n var _activeElement, _activeElement$shadow;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n });\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n });\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\n\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\n\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n event.target;\n clearTimeout(timeoutId);\n }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, {\n ref: ref,\n tabIndex: 0\n // Role is only for VoiceOver\n ,\n role: role,\n \"aria-hidden\": role ? undefined : true,\n \"data-floating-ui-focus-guard\": \"\",\n style: HIDDEN_STYLES\n }));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nfunction useFloatingPortalNode(_temp) {\n let {\n id,\n root\n } = _temp === void 0 ? {} : _temp;\n const [portalNode, setPortalNode] = React.useState(null);\n const uniqueId = useId();\n const portalContext = usePortalContext();\n const data = React.useMemo(() => ({\n id,\n root,\n portalContext,\n uniqueId\n }), [id, root, portalContext, uniqueId]);\n const dataRef = React.useRef();\n index(() => {\n return () => {\n portalNode == null ? void 0 : portalNode.remove();\n };\n }, [portalNode, data]);\n index(() => {\n if (dataRef.current === data) return;\n dataRef.current = data;\n const {\n id,\n root,\n portalContext,\n uniqueId\n } = data;\n const existingIdRoot = id ? document.getElementById(id) : null;\n const attr = 'data-floating-ui-portal';\n if (existingIdRoot) {\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n existingIdRoot.appendChild(subRoot);\n setPortalNode(subRoot);\n } else {\n let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n if (container && !isElement(container)) container = container.current;\n container = container || document.body;\n let idWrapper = null;\n if (id) {\n idWrapper = document.createElement('div');\n idWrapper.id = id;\n container.appendChild(idWrapper);\n }\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n container = idWrapper || container;\n container.appendChild(subRoot);\n setPortalNode(subRoot);\n }\n }, [data]);\n return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(_ref) {\n let {\n children,\n id,\n root = null,\n preserveTabOrder = true\n } = _ref;\n const portalNode = useFloatingPortalNode({\n id,\n root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal &&\n // Don't render if unmount is transitioning.\n focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null ? void 0 : prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), portalNode && /*#__PURE__*/createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null ? void 0 : nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent));\n }\n }\n }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n const {\n context,\n children,\n order = ['content'],\n guards = true,\n initialFocus = 0,\n returnFocus = true,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = props;\n const {\n open,\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n const orderRef = useLatestRef(order);\n const initialFocusRef = useLatestRef(initialFocus);\n const returnFocusRef = useLatestRef(returnFocus);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n\n // Controlled by `useListNavigation`.\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const previouslyFocusedElementRef = React.useRef(null);\n const isPointerDownRef = React.useRef(false);\n const isInsidePortal = portalContext != null;\n\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference);\n const getTabbableContent = React.useCallback(function (container) {\n if (container === void 0) {\n container = floating;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n }, [floating]);\n const getTabbableElements = React.useCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floating && type === 'floating') {\n return floating;\n }\n return content;\n }).filter(Boolean).flat();\n }, [domReference, floating, orderRef, getTabbableContent]);\n React.useEffect(() => {\n if (!modal) {\n return;\n }\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains(floating, activeElement(getDocument(floating))) && getTabbableContent().length === 0 && !isTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floating);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [domReference, floating, modal, orderRef, refs, isTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (!closeOnFocusOut) {\n return;\n }\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n queueMicrotask(() => {\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute('data-floating-ui-focus-guard') || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== previouslyFocusedElementRef.current) {\n preventReturnFocusRef.current = true;\n onOpenChange(false, event);\n }\n });\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n !modal && floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n !modal && floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n React.useEffect(() => {\n var _portalContext$portal;\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll('[data-floating-ui-portal]')) || []);\n function getDismissButtons() {\n return [startDismissButtonRef.current, endDismissButtonRef.current].filter(Boolean);\n }\n if (floating && modal) {\n const insideNodes = [floating, ...portalNodes, ...getDismissButtons()];\n const cleanup = hideOthers(orderRef.current.includes('reference') || isTypeableCombobox ? insideNodes.concat(domReference || []) : insideNodes);\n return () => {\n cleanup();\n };\n }\n }, [domReference, floating, modal, orderRef, portalContext, isTypeableCombobox]);\n React.useEffect(() => {\n if (modal && !guards && floating) {\n const tabIndexValues = [];\n const options = getTabbableOptions();\n const allTabbable = tabbable(getDocument(floating).body, options);\n const floatingTabbable = getTabbableElements();\n\n // Exclude all tabbable elements that are part of the order\n const elements = allTabbable.filter(el => !floatingTabbable.includes(el));\n elements.forEach((el, i) => {\n tabIndexValues[i] = el.getAttribute('tabindex');\n el.setAttribute('tabindex', '-1');\n });\n return () => {\n elements.forEach((el, i) => {\n const value = tabIndexValues[i];\n if (value == null) {\n el.removeAttribute('tabindex');\n } else {\n el.setAttribute('tabindex', value);\n }\n });\n };\n }\n }, [floating, modal, guards, getTabbableElements]);\n index(() => {\n if (!floating) return;\n const doc = getDocument(floating);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const focusableElements = getTabbableElements(floating);\n const initialFocusValue = initialFocusRef.current;\n const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floating;\n const focusAlreadyInsideFloatingEl = contains(floating, previouslyFocusedElement);\n if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floating\n });\n }\n });\n }, [open, floating, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n index(() => {\n if (!floating) return;\n let preventReturnFocusScroll = false;\n const doc = getDocument(floating);\n const previouslyFocusedElement = activeElement(doc);\n const contextData = dataRef.current;\n previouslyFocusedElementRef.current = previouslyFocusedElement;\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onDismiss(payload) {\n if (payload.type === 'escapeKey' && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (['referencePress', 'escapeKey'].includes(payload.type)) {\n return;\n }\n const returnFocus = payload.data.returnFocus;\n if (typeof returnFocus === 'object') {\n preventReturnFocusRef.current = false;\n preventReturnFocusScroll = returnFocus.preventScroll;\n } else {\n preventReturnFocusRef.current = !returnFocus;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n const activeEl = activeElement(doc);\n const shouldFocusReference = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context5;\n return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n }) || contextData.openEvent && ['click', 'mousedown'].includes(contextData.openEvent.type);\n if (shouldFocusReference && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n returnFocusRef.current && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n enqueueFocus(previouslyFocusedElementRef.current, {\n // When dismissing nested floating elements, by the time the rAF has\n // executed, the menus will all have been unmounted. When they try\n // to get focused, the calls get ignored — leaving the root\n // reference focused as desired.\n cancelPrevious: false,\n preventScroll: preventReturnFocusScroll\n });\n }\n };\n }, [floating, returnFocusRef, dataRef, refs, events, tree, nodeId]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n ...context,\n modal,\n closeOnFocusOut,\n open\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [portalContext, modal, open, closeOnFocusOut, context]);\n index(() => {\n if (floating && typeof MutationObserver === 'function') {\n const handleMutation = () => {\n const tabIndex = floating.getAttribute('tabindex');\n if (orderRef.current.includes('floating') || activeElement(getDocument(floating)) !== refs.domReference.current && getTabbableContent().length === 0) {\n if (tabIndex !== '0') {\n floating.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1') {\n floating.setAttribute('tabindex', '-1');\n }\n };\n handleMutation();\n const observer = new MutationObserver(handleMutation);\n observer.observe(floating, {\n childList: true,\n subtree: true,\n attributes: true\n });\n return () => {\n observer.disconnect();\n };\n }\n }, [floating, refs, orderRef, getTabbableContent]);\n function renderDismissButton(location) {\n return visuallyHiddenDismiss && modal ? /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: event => onOpenChange(false, event.nativeEvent)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss') : null;\n }\n const shouldRenderGuards = guards && !isTypeableCombobox && (isInsidePortal || modal);\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null ? void 0 : nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n }\n }\n }\n }), !isTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null ? void 0 : prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction areMapsEqual(map1, map2) {\n if (map1.size !== map2.size) {\n return false;\n }\n for (const [key, value] of map1.entries()) {\n if (value !== map2.get(key)) {\n return false;\n }\n }\n return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n map: /*#__PURE__*/new Map(),\n elementsRef: {\n current: []\n }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(_ref) {\n let {\n children,\n elementsRef,\n labelsRef\n } = _ref;\n const [map, setMap] = React.useState(() => new Map());\n const register = React.useCallback(node => {\n setMap(prevMap => new Map(prevMap).set(node, null));\n }, []);\n const unregister = React.useCallback(node => {\n setMap(prevMap => {\n const map = new Map(prevMap);\n map.delete(node);\n return map;\n });\n }, []);\n index(() => {\n const newMap = new Map(map);\n const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n nodes.forEach((node, index) => {\n newMap.set(node, index);\n });\n if (!areMapsEqual(map, newMap)) {\n setMap(newMap);\n }\n }, [map]);\n return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n value: React.useMemo(() => ({\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n }), [register, unregister, map, elementsRef, labelsRef])\n }, children);\n}\nfunction useListItem(_temp) {\n let {\n label\n } = _temp === void 0 ? {} : _temp;\n const [index$1, setIndex] = React.useState(null);\n const componentRef = React.useRef(null);\n const {\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n } = React.useContext(FloatingListContext);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index$1 !== null) {\n elementsRef.current[index$1] = node;\n if (labelsRef) {\n var _node$textContent;\n const isLabelDefined = label !== undefined;\n labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n }\n }\n }, [index$1, elementsRef, labelsRef, label]);\n index(() => {\n const node = componentRef.current;\n if (node) {\n register(node);\n return () => {\n unregister(node);\n };\n }\n }, [register, unregister]);\n index(() => {\n const index = componentRef.current ? map.get(componentRef.current) : null;\n if (index != null) {\n setIndex(index);\n }\n }, [map]);\n return React.useMemo(() => ({\n ref,\n index: index$1 == null ? -1 : index$1\n }), [index$1, ref]);\n}\n\nconst identifier = 'data-floating-ui-scroll-lock';\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n let {\n lockScroll = false,\n ...rest\n } = _ref;\n index(() => {\n var _window$visualViewpor, _window$visualViewpor2;\n if (!lockScroll) {\n return;\n }\n const alreadyLocked = document.body.hasAttribute(identifier);\n if (alreadyLocked) {\n return;\n }\n document.body.setAttribute(identifier, '');\n\n // RTL <body> scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (!/iP(hone|ad|od)|iOS/.test(getPlatform())) {\n Object.assign(document.body.style, {\n overflow: 'hidden',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n document.body.removeAttribute(identifier);\n Object.assign(document.body.style, {\n overflow: '',\n [paddingProp]: ''\n });\n };\n }\n\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n const scrollX = window.pageXOffset;\n const scrollY = window.pageYOffset;\n Object.assign(document.body.style, {\n position: 'fixed',\n overflow: 'hidden',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n Object.assign(document.body.style, {\n position: '',\n overflow: '',\n top: '',\n left: '',\n right: '',\n [paddingProp]: ''\n });\n document.body.removeAttribute(identifier);\n window.scrollTo(scrollX, scrollY);\n };\n }, [lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = context;\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true\n } = props;\n const pointerTypeRef = React.useRef();\n const didKeyDownRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) return {};\n return {\n reference: {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) {\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (eventOption === 'click') {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false, event.nativeEvent);\n }\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true, event.nativeEvent);\n }\n },\n onClick(event) {\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false, event.nativeEvent);\n }\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n didKeyDownRef.current = true;\n }\n if (event.key === 'Enter') {\n if (open) {\n if (toggle) {\n onOpenChange(false, event.nativeEvent);\n }\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ' && didKeyDownRef.current) {\n didKeyDownRef.current = false;\n if (open) {\n if (toggle) {\n onOpenChange(false, event.nativeEvent);\n }\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n }\n }\n };\n }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nfunction createVirtualElement(domRef, data) {\n let offsetX = null;\n let offsetY = null;\n let isAutoUpdateEvent = false;\n return {\n contextElement: domRef.current || undefined,\n getBoundingClientRect() {\n var _domRef$current, _data$dataRef$current;\n const domRect = ((_domRef$current = domRef.current) == null ? void 0 : _domRef$current.getBoundingClientRect()) || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n const isXAxis = data.axis === 'x' || data.axis === 'both';\n const isYAxis = data.axis === 'y' || data.axis === 'both';\n const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n let width = domRect.width;\n let height = domRect.height;\n let x = domRect.x;\n let y = domRect.y;\n if (offsetX == null && data.x && isXAxis) {\n offsetX = domRect.x - data.x;\n }\n if (offsetY == null && data.y && isYAxis) {\n offsetY = domRect.y - data.y;\n }\n x -= offsetX || 0;\n y -= offsetY || 0;\n width = 0;\n height = 0;\n if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n width = data.axis === 'y' ? domRect.width : 0;\n height = data.axis === 'x' ? domRect.height : 0;\n x = isXAxis && data.x != null ? data.x : x;\n y = isYAxis && data.y != null ? data.y : y;\n } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n height = data.axis === 'x' ? domRect.height : height;\n width = data.axis === 'y' ? domRect.width : width;\n }\n isAutoUpdateEvent = true;\n return {\n width,\n height,\n x,\n y,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n }\n };\n}\nfunction isMouseBasedEvent(event) {\n return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n refs,\n dataRef,\n elements: {\n floating\n }\n } = context;\n const {\n enabled = true,\n axis = 'both',\n x = null,\n y = null\n } = props;\n const initialRef = React.useRef(false);\n const cleanupListenerRef = React.useRef(null);\n const [pointerType, setPointerType] = React.useState();\n const [reactive, setReactive] = React.useState([]);\n const setReference = useEffectEvent((x, y) => {\n if (initialRef.current) return;\n\n // Prevent setting if the open event was not a mouse-like one\n // (e.g. focus to open, then hover over the reference element).\n // Only apply if the event exists.\n if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n return;\n }\n refs.setPositionReference(createVirtualElement(refs.domReference, {\n x,\n y,\n axis,\n dataRef,\n pointerType\n }));\n });\n const handleReferenceEnterOrMove = useEffectEvent(event => {\n if (x != null || y != null) return;\n if (!open) {\n setReference(event.clientX, event.clientY);\n } else if (!cleanupListenerRef.current) {\n // If there's no cleanup, there's no listener, but we want to ensure\n // we add the listener if the cursor landed on the floating element and\n // then back on the reference (i.e. it's interactive).\n setReactive([]);\n }\n });\n\n // If the pointer is a mouse-like pointer, we want to continue following the\n // mouse even if the floating element is transitioning out. On touch\n // devices, this is undesirable because the floating element will move to\n // the dismissal touch point.\n const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n const addListener = React.useCallback(() => {\n // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n if (!openCheck || !enabled || x != null || y != null) return;\n const win = getWindow(refs.floating.current);\n function handleMouseMove(event) {\n const target = getTarget(event);\n if (!contains(refs.floating.current, target)) {\n setReference(event.clientX, event.clientY);\n } else {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n }\n }\n if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n win.addEventListener('mousemove', handleMouseMove);\n const cleanup = () => {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n };\n cleanupListenerRef.current = cleanup;\n return cleanup;\n }\n refs.setPositionReference(refs.domReference.current);\n }, [dataRef, enabled, openCheck, refs, setReference, x, y]);\n React.useEffect(() => {\n return addListener();\n }, [addListener, reactive]);\n React.useEffect(() => {\n if (enabled && !floating) {\n initialRef.current = false;\n }\n }, [enabled, floating]);\n React.useEffect(() => {\n if (!enabled && open) {\n initialRef.current = true;\n }\n }, [enabled, open]);\n index(() => {\n if (enabled && (x != null || y != null)) {\n initialRef.current = false;\n setReference(x, y);\n }\n }, [enabled, x, y, setReference]);\n return React.useMemo(() => {\n if (!enabled) return {};\n function setPointerTypeRef(_ref) {\n let {\n pointerType\n } = _ref;\n setPointerType(pointerType);\n }\n return {\n reference: {\n onPointerDown: setPointerTypeRef,\n onPointerEnter: setPointerTypeRef,\n onMouseMove: handleReferenceEnterOrMove,\n onMouseEnter: handleReferenceEnterOrMove\n }\n };\n }, [enabled, handleReferenceEnterOrMove]);\n}\n\n/**\n * Check whether the event.target is within the provided node. Uses event.composedPath if available for custom element support.\n *\n * @param event The event whose target/composedPath to check\n * @param node The node to check against\n * @returns Whether the event.target/composedPath is within the node.\n */\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeBubblesProp = bubbles => {\n var _bubbles$escapeKey, _bubbles$outsidePress;\n return {\n escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles == null ? void 0 : bubbles.escapeKey) != null ? _bubbles$escapeKey : false,\n outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles == null ? void 0 : bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n events,\n nodeId,\n elements: {\n reference,\n domReference,\n floating\n },\n dataRef\n } = context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles\n } = props;\n const tree = useFloatingTree();\n const nested = useFloatingParentNodeId() != null;\n const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const {\n escapeKeyBubbles,\n outsidePressBubbles\n } = normalizeBubblesProp(bubbles);\n const closeOnEscapeKeyDown = useEffectEvent(event => {\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n event.stopPropagation();\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n events.emit('dismiss', {\n type: 'escapeKey',\n data: {\n returnFocus: {\n preventScroll: false\n }\n }\n });\n onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event);\n });\n const closeOnPressOutside = useEffectEvent(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n // elements.\n const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = getWindow(floating).getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'outsidePress',\n data: {\n returnFocus: nested ? {\n preventScroll: true\n } : isVirtualClick(event) || isVirtualPointerEvent(event)\n }\n });\n onOpenChange(false, event);\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n function onScroll(event) {\n onOpenChange(false, event);\n }\n const doc = getDocument(floating);\n escapeKey && doc.addEventListener('keydown', closeOnEscapeKeyDown);\n outsidePress && doc.addEventListener(outsidePressEvent, closeOnPressOutside);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(domReference)) {\n ancestors = getOverflowAncestors(domReference);\n }\n if (isElement(floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(floating));\n }\n if (!isElement(reference) && reference && reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n escapeKey && doc.removeEventListener('keydown', closeOnEscapeKeyDown);\n outsidePress && doc.removeEventListener(outsidePressEvent, closeOnPressOutside);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n };\n }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, closeOnPressOutside]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onKeyDown: closeOnEscapeKeyDown,\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n if (referencePress) {\n events.emit('dismiss', {\n type: 'referencePress',\n data: {\n returnFocus: false\n }\n });\n onOpenChange(false, event.nativeEvent);\n }\n }\n },\n floating: {\n onKeyDown: closeOnEscapeKeyDown,\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }\n };\n }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange, closeOnEscapeKeyDown]);\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n var _options$elements;\n if (options === void 0) {\n options = {};\n }\n const {\n open = false,\n onOpenChange: unstable_onOpenChange,\n nodeId\n } = options;\n const [_domReference, setDomReference] = React.useState(null);\n const domReference = ((_options$elements = options.elements) == null ? void 0 : _options$elements.reference) || _domReference;\n const position = useFloating$1(options);\n const tree = useFloatingTree();\n const onOpenChange = useEffectEvent((open, event) => {\n if (open) {\n dataRef.current.openEvent = event;\n }\n unstable_onOpenChange == null ? void 0 : unstable_onOpenChange(open, event);\n });\n const domReferenceRef = React.useRef(null);\n const dataRef = React.useRef({});\n const events = React.useState(() => createPubSub())[0];\n const floatingId = useId();\n const setPositionReference = React.useCallback(node => {\n const positionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n position.refs.setReference(positionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const context = React.useMemo(() => ({\n ...position,\n refs,\n elements,\n dataRef,\n nodeId,\n floatingId,\n events,\n open,\n onOpenChange\n }), [position, nodeId, floatingId, events, open, onOpenChange, refs, elements]);\n index(() => {\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n elements\n }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n refs,\n elements: {\n floating,\n domReference\n }\n } = context;\n const {\n enabled = true,\n keyboardOnly = true\n } = props;\n const pointerTypeRef = React.useRef('');\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const doc = getDocument(floating);\n const win = doc.defaultView || window;\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(domReference) && domReference === activeElement(getDocument(domReference))) {\n blockFocusRef.current = true;\n }\n }\n win.addEventListener('blur', onBlur);\n return () => {\n win.removeEventListener('blur', onBlur);\n };\n }, [floating, domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss(payload) {\n if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n blockFocusRef.current = true;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(_ref) {\n let {\n pointerType\n } = _ref;\n pointerTypeRef.current = pointerType;\n blockFocusRef.current = !!(pointerType && keyboardOnly);\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n var _dataRef$current$open;\n if (blockFocusRef.current) {\n return;\n }\n\n // Dismiss with click should ignore the subsequent `focus` trigger,\n // but only if the click originated inside the reference element.\n if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n return;\n }\n onOpenChange(true, event.nativeEvent);\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute('data-floating-ui-focus-guard') && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = setTimeout(() => {\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false, event.nativeEvent);\n });\n }\n }\n };\n }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1\n }),\n ...userProps,\n ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\n\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/react#interaction-hooks\n */\nfunction useInteractions(propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n // The dependencies are a dynamic array, so we can't use the linter's\n // suggestion to add it to the deps array.\n const deps = propsList;\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // Granularly check for `item` changes, because the `getItemProps` getter\n // should be as referentially stable as possible since it may be passed as\n // a prop to many components. All `item` key values must therefore be\n // memoized.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n propsList.map(key => key == null ? void 0 : key.item));\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n var _list$index, _list$index2;\n index = index + (decrement ? -amount : amount);\n } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n return index;\n}\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n const {\n open,\n onOpenChange,\n refs,\n elements: {\n domReference,\n floating\n }\n } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n }\n if (!virtual) {\n console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n }\n }\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEffectEvent(unstable_onNavigate);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!floating);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const [activeId, setActiveId] = React.useState();\n const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n const item = listRef.current[indexRef.current];\n if (!item) return;\n if (virtual) {\n setActiveId(item.id);\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n requestAnimationFrame(() => {\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n });\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open && floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate(selectedIndex);\n }\n } else if (previousMountedRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, floating, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open && floating) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndex != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if (!previousMountedRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n // Avoid letting the browser paint if possible on the first try,\n // otherwise use rAF. Don't try more than twice, since something\n // is wrong otherwise.\n if (runs < 2) {\n const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate(indexRef.current);\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, floating, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n if (!enabled) {\n return;\n }\n if (previousMountedRef.current && !floating && tree) {\n var _nodes$find, _nodes$find$context;\n const nodes = tree.nodesRef.current;\n const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null ? void 0 : (_nodes$find$context = _nodes$find.context) == null ? void 0 : _nodes$find$context.elements.floating;\n const activeEl = activeElement(getDocument(floating));\n const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n if (parent && !treeContainsActiveEl) {\n parent.focus({\n preventScroll: true\n });\n }\n }\n }, [enabled, floating, tree, parentId]);\n index(() => {\n previousOnNavigateRef.current = onNavigate;\n previousMountedRef.current = !!floating;\n });\n index(() => {\n if (!open) {\n keyRef.current = null;\n }\n }, [open]);\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref) {\n let {\n currentTarget\n } = _ref;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref2 => {\n let {\n currentTarget\n } = _ref2;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref3) {\n let {\n currentTarget\n } = _ref3;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave(_ref4) {\n let {\n pointerType\n } = _ref4;\n if (!isPointerModalityRef.current || pointerType === 'touch') {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n onNavigate(null);\n if (!virtual) {\n enqueueFocus(refs.floating.current, {\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n const disabledIndices = disabledIndicesRef.current;\n function onKeyDown(event) {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false, event.nativeEvent);\n if (isHTMLElement(domReference)) {\n domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n\n // Grid navigation.\n if (cols > 1) {\n const prevIndex = indexRef.current;\n if (event.key === ARROW_UP) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || indexRef.current < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n if (event.key === ARROW_DOWN) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = minIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = Math.floor(prevIndex / cols);\n if (event.key === ARROW_RIGHT) {\n stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n if (event.key === ARROW_LEFT) {\n stopEvent(event);\n if (prevIndex % cols !== 0) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices,\n decrement: true\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n const lastRow = Math.floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n if (loop && lastRow) {\n indexRef.current = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n indexRef.current = prevIndex;\n }\n }\n onNavigate(indexRef.current);\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n }\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n 'aria-activedescendant': activeId\n };\n return {\n reference: {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.indexOf('Arrow') === 0;\n if (virtual && open) {\n return onKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n const isNavigationKey = isArrowKey || event.key === 'Enter' || event.key.trim() === '';\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isCrossKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n if (isNavigationKey) {\n keyRef.current = nested && isMainKey ? null : event.key;\n }\n if (nested) {\n if (isCrossKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndices);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent);\n } else {\n onKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n },\n floating: {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...ariaActiveDescendantProp,\n onKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n },\n item\n };\n }, [domReference, refs, activeId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item]);\n}\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n floatingId\n } = context;\n const {\n enabled = true,\n role = 'dialog'\n } = props;\n const referenceId = useId();\n return React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n role\n };\n if (!enabled) {\n return {};\n }\n if (role === 'tooltip') {\n return {\n reference: {\n 'aria-describedby': open ? floatingId : undefined\n },\n floating: floatingProps\n };\n }\n return {\n reference: {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n 'aria-controls': open ? floatingId : undefined,\n ...(role === 'listbox' && {\n role: 'combobox'\n }),\n ...(role === 'menu' && {\n id: referenceId\n })\n },\n floating: {\n ...floatingProps,\n ...(role === 'menu' && {\n 'aria-labelledby': referenceId\n })\n }\n };\n }, [enabled, role, open, floatingId, referenceId]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n elements: {\n floating\n }\n } = context;\n const {\n duration = 250\n } = props;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [initiated, setInitiated] = React.useState(false);\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n\n // `initiated` check prevents this `setState` call from breaking\n // <FloatingPortal />. This call is necessary to ensure subsequent opens\n // after the initial one allows the correct side animation to play when the\n // placement has changed.\n index(() => {\n if (initiated && !isMounted) {\n setStatus('unmounted');\n }\n }, [initiated, isMounted]);\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n } else {\n setInitiated(true);\n setStatus('close');\n }\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = props;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const fnArgs = React.useMemo(() => ({\n side,\n placement\n }), [side, placement]);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [styles, setStyles] = React.useState(() => ({\n ...execWithArgsOrReturn(unstable_common, fnArgs),\n ...execWithArgsOrReturn(unstable_initial, fnArgs)\n }));\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n index(() => {\n const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n var _ref;\n const {\n open,\n dataRef\n } = context;\n const {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch,\n onTypingChange: unstable_onTypingChange,\n enabled = true,\n findMatch = null,\n resetMs = 750,\n ignoreKeys = [],\n selectedIndex = null\n } = props;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEffectEvent(unstable_onMatch);\n const onTypingChange = useEffectEvent(unstable_onTypingChange);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref2;\n prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setTypingChange(value) {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else {\n if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n }\n }\n function getMatchingIndex(list, orderedList, string) {\n const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n return str ? list.indexOf(str) : -1;\n }\n function onKeyDown(event) {\n const listContent = listRef.current;\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n setTypingChange(false);\n } else if (event.key === ' ') {\n stopEvent(event);\n }\n }\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== ' ') {\n stopEvent(event);\n setTypingChange(true);\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n } else if (event.key !== ' ') {\n stringRef.current = '';\n setTypingChange(false);\n }\n }\n return {\n reference: {\n onKeyDown\n },\n floating: {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === ' ') {\n setTypingChange(false);\n }\n }\n }\n };\n }, [enabled, open, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, onTypingChange]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = props;\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n flushSync(() => onFallbackChange(true));\n } else {\n flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n const {\n open,\n elements\n } = context;\n const {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = props;\n const onChange = useEffectEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n floating: {\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }\n };\n }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safePolygon\n */\nfunction safePolygon(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true\n } = options;\n let timeoutId;\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = performance.now();\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime; // px / ms\n\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n break;\n case 'bottom':\n rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n break;\n case 'left':\n rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n } else if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n return close();\n }\n }\n if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n close();\n } else if (!hasLanded && requireIntent) {\n timeoutId = window.setTimeout(close, 40);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\nexport { FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import * as React from \"react\"\nimport { forwardRef, useEffect, useRef, useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\"\nimport Popper from \"../Popper\"\n\nconst Tooltip = forwardRef((props, ref) => {\n const {\n content,\n onOpen,\n onClose,\n onChange,\n open: controlledOpen,\n children,\n cursor,\n toggleMethod,\n withArrow,\n placement,\n ...popper\n } = props\n const [isOpen, setOpen] = useState(!!controlledOpen)\n const arrowRef = useRef(null)\n\n const handleOpen = () => {\n if (toggleMethod !== \"click\") {\n setOpen(true)\n if (onOpen) onOpen()\n }\n }\n\n const handleClose = () => {\n if (toggleMethod !== \"click\") {\n setOpen(false)\n if (onClose) onClose()\n }\n }\n\n const {\n refs,\n floatingStyles,\n context,\n middlewareData,\n placement: realPlacement,\n } = useFloating({\n open: isOpen,\n onOpenChange: setOpen,\n middleware: [\n offset(),\n flip(),\n shift({ padding: 6 }),\n ...(withArrow\n ? [\n arrow({\n element: arrowRef,\n }),\n ]\n : []),\n ],\n placement,\n whileElementsMounted: autoUpdate,\n })\n\n const click = useClick(context)\n const dismiss = useDismiss(context)\n const role = useRole(context)\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n dismiss,\n role,\n ...(toggleMethod === \"click\" ? [click] : []),\n ])\n\n useEffect(() => {\n setOpen(!!controlledOpen)\n }, [controlledOpen])\n\n useEffect(() => {\n if (onChange) onChange(!!isOpen)\n }, [isOpen])\n\n return (\n <StyledWrapper onMouseLeave={handleClose} ref={ref}>\n <StyledContentWrapper\n onMouseEnter={handleOpen}\n ref={refs.setReference}\n cursor={cursor}\n {...getReferenceProps()}\n >\n <StyledContent>{children}</StyledContent>\n </StyledContentWrapper>\n <Popper\n open={isOpen}\n {...popper}\n ref={refs.setFloating}\n arrowRef={arrowRef}\n style={floatingStyles}\n withArrow={withArrow}\n arrowPosition={middlewareData.arrow}\n realPlacement={realPlacement}\n {...getFloatingProps()}\n >\n {content}\n </Popper>\n </StyledWrapper>\n )\n})\n\nexport default Tooltip\n\nconst containerCSS = css`\n display: inline-flex;\n width: fit-content;\n height: fit-content;\n`\n\nconst StyledWrapper = styled.div`\n ${containerCSS};\n position: relative;\n`\n\nconst StyledContentWrapper = styled.div`\n ${containerCSS};\n cursor: ${({ cursor }) => cursor};\n z-index: 1;\n`\n\nconst StyledContent = styled.div`\n ${containerCSS};\n z-index: -1;\n`\n","import React from \"react\"\r\nimport styled from \"@emotion/styled\"\r\nimport Container from \"../Container\"\r\nimport Caption from \"../Caption\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst ErrorComponent = ({ message, icon, ...otherProps }) => (\r\n <Container {...otherProps}>\r\n <StyledTitle>{message}</StyledTitle>\r\n <StyledIconWrapper>{icon}</StyledIconWrapper>\r\n </Container>\r\n)\r\n\r\nexport default ErrorComponent\r\n\r\nconst StyledTitle = styled(Caption)`\r\n font-size: 24px;\r\n line-height: 32px;\r\n margin: 104px auto 16px;\r\n text-align: center;\r\n max-width: 530px;\r\n @media (max-width: ${theme.breakpoints.sm}px) {\r\n font-size: 16px;\r\n line-height: 24px;\r\n }\r\n`\r\n\r\nconst StyledIconWrapper = styled.div`\r\n svg {\r\n width: 100%;\r\n height: auto;\r\n min-height: 200px;\r\n max-height: calc(100vh - 200px);\r\n }\r\n`\r\n"],"names":["colors","primary","main","pressed","hover","light","light2","secondary","gray60","gray50","gray40","gray30","gray15","white","disabled","background","light3","success","green70","green60","green10","green5","error","red70","red60","red10","red5","info","blue70","blue60","blue10","blue5","purple","purple70","purple60","purple10","purple5","shadows","shadow1","shadow2","shadow3","shadow4","breakpoints","xxs","xs","sm","md","lg","xl","settings","spacing","columns","themeOld","palette","theme","brand","_objectSpread","grey","seventy","sixty","fiftyP","fourty","thirty","fifteenB","zero","light1","light4","green","ten","five","red","blue","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","window","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","type","A","process","env","NODE_ENV","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","object","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","isAsyncMode","console","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","require$$0","require$$1","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","objectAssign","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","map","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","val","TypeError","toObject","s","has","Function","bind","printWarning","ReactPropTypesSecret","loggedTypeFailures","text","message","Error","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","name","ex","stack","resetWarningCache","emptyFunctionThatReturnsNull","emptyFunction","emptyFunctionWithReset","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","number","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","props","propName","propFullName","PropTypeError","propValue","getPropType","element","elementType","ReactIs","instanceOf","expectedClass","expectedClassName","constructor","node","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","JSON","stringify","value","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","this","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","step","entries","next","done","entry","RegExp","isSymbol","Date","PropTypes","shim","getShim","require$$2","headingSizes","hero","h1","h2","h3","h4","headingVariants","size","height","mobSize","mobHeight","Heading","forwardRef","ref","children","className","otherProps","_excluded","_jsx","StyledHeading","as","defaultProps","color","colorGroup","disableUserSelect","weight","propTypes","headingSettingsCSS","css","align","_styled","label","captionSizes","high","Caption","StyledCaption","variant","displayName","captionSettingsCSS","_ref","disSelect","textVariants","Text","StyledText","textSettingsCSS","buttonSizes","buttonBorders","lightGray","lightOrange","buttonVariants","active","orange","hoverColor","border","whiteWithOrangeHover","whiteWithGray","whiteWithBrand","grayLightWithBorder","grayLight","grayDark","backgroundLight","backgroundWithBorder","blur","backdrop","blurDark","transparent","withoutShadow","orangeWithHoverLight","orangeWithBorder","transparentLight","transparentWithBorder","transparentWithDarkBorder","transparentWithBoldBorder","Button","fullWidth","isCircle","captionSize","disabledStyle","startIcon","endIcon","captionWeight","withoutChildrenWrapper","buttonProps","StyledButton","StyledCircleButtonContainer","_jsxs","StyledContentContainer","withIcon","StyledStartIcon","StyledEndIcon","circleButtonCSS","_ref2","buttonSettingsCSS","buttonVariantCSS","concat","styles","_EMOTION_STRINGIFIED_CSS_ERROR__","iconContainerCSS","_ref3","ErrorIcon","width","viewBox","fill","xmlns","fillRule","clipRule","WarningIcon","SuccessIcon","messageVariants","icon","warning","InputMessage","_messageRef$current2","msg","messageRef","useRef","_useState2","_slicedToArray","useState","messageRefHeight","setMessageRefHeight","useEffect","_messageRef$current","current","clientHeight","StyledMessage","style","bottom","StyledIconWrapper","StyledTitle","messageVariantCSS","TextareaGrabIcon","Input","isTextArea","inputRefProp","inputRef","inputStyles","labelStyles","messageClassName","labelInlineStyles","messageVariant","inputValue","rows","placeholder","inputProps","isFilled","setIsFilled","isInvalid","_inputRef$current","commonProps","elem","onInput","withMessage","withLabel","StyledContainer","StyledTextarea","StyledInput","StyledInputLabel","StyledTextareaIcon","labelActiveCSS","inputStates","inputCSS","inputStateCSS","InputWithAdornments","_startIconRef$current2","_endIconRef$current2","cornerLabel","startIconRef","endIconRef","startIconWidth","setStartIconWidth","_useState4","endIconWidth","setEndIconWidth","inputStyle","paddingLeft","paddingRight","labelStyle","left","_startIconRef$current","clientWidth","_endIconRef$current","isCornerLabel","StyledCornerLabel","errorMessage","cornerLabelCSS","StyledIcon","React","_interopDefault","_extends","_inheritsLoose","create","getOwnPropertyDescriptor","configurable","undefined","defineProperty","_defaults2","_assertThisInitialized","ReferenceError","invariant_1","o","replace","framesToPop","setInputSelection","selectionStart","selectionEnd","createTextRange","collapse","moveStart","moveEnd","select","defaultFormatChars","parseMask","maskChar","formatChars","mask","prefix","lastEditablePosition","permanents","isPermanentCharacter","indexOf","isAllowedCharacter","test","isEmpty","getFilledLength","slice","formatValue","insertString","getRightEditablePosition","getStringValue","processChange","Math","min","start","end","getInsertStringLength","getLeftEditablePosition","max","splice","clearRange","enteredString","selection","isFunction","getCancelAnimationFrame","cancelAnimationFrame","webkitCancelRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","defer","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","setTimeout","cancelDefer","clearTimeout","InputElement","focused","mounted","previousSelection","selectionDeferId","saveSelectionLoopDeferId","saveSelectionLoop","getSelection","runSaveSelectionLoop","stopSaveSelectionLoop","getInputDOMNode","reactDom","findDOMNode","nodeName","querySelector","getInputValue","setInputValue","setCursorToEnd","maskOptions","setCursorPosition","setSelection","isFocused","deferred","abs","document","createRange","parentElement","getInputSelection","getCursorPosition","getBeforeMaskedValueChangeConfig","alwaysShowMask","isInputAutofilled","matches","onChange","beforePasteState","beforeMaskedValueChange","isWindowsPhoneBrowser","onFocus","onBlur","onMouseDown","addEventListener","mouseDownX","clientX","mouseDownY","clientY","mouseDownTime","getTime","removeEventListener","onPaste","defaultPrevented","handleRef","defaultValue","componentDidMount","navigator","userAgent","componentDidUpdate","forceUpdate","componentWillUnmount","render","_objectWithoutPropertiesLoose","filter","createElement","readOnly","cloneElement","Component","reactInputMask_production_min","condition","format","args","argIndex","len","warning_1","invariant","subClass","superClass","obj","defaults","self","input","range","parsedMaskString","isPermanent","character","pos","charRule","filledLength","insertStr","insertPosition","arrayInsertStr","isInputFilled","isUsableCharacter","insertCharacter","previousValue","newValue","formattedEnteredStringLength","removedLength","cursorPosition","initialInsertPosition","arrayValue","fn","deferId","reactInputMask_development","_React$Component","_this","isDOMNode","options","_this$maskOptions","event","changedState","newSelection","modifiedValue","_this$maskOptions2","emptyValue","isInputValueChanged","mouseUpHandler","mouseUpEvent","deltaX","deltaY","axisDelta","timeDelta","_mask","_maskChar","_formatChars","_alwaysShowMask","_beforeMaskedValueChange","_value","_newValue","oldValue","_proto","windows","phone","ua","_this$props","previousMaskOptions","showEmpty","hasValue","isMaskChanged","isValueChanged","isSelectionChanged","_this$props2","inputElement","restProps","excluded","sourceKeys","maxLength","controlledProps","childrenProps","propId","conflictProps","changedProps","InputWithMask","valueProp","other","setValue","InputMask","maskPlaceholder","_e$target$value","match","CountryItem","item","selectCountryIndex","countryIcon","useMemo","nameCode","toUpperCase","char","fromCodePoint","charCodeAt","StyledCountry","onClick","StyledCountryName","nameRus","StyledCountryPhone","phoneCode","SearchIcon","Dropdown","isOpen","setIsOpenDropDown","buttonRef","countries","filteredCountries","setFilteredCountries","dropdownRef","closePopUp","contains","StyledSearchWrapper","StyledSearch","StyledSearchInput","query","toLowerCase","StyledDropdown","HalfArrowIcon","InputWithCountryDropdown","onSelectCountry","hiddenInputProps","_objectWithoutProperties","selectedCountryCode","selectedCountryIndex","findIndex","country","selectedCountry","setSelectedCountry","isOpenDropdown","StyledDropdownWrapper","StyledPhoneCodeButton","StyledPhoneCodeIcon","isReverse","reduce","acc","index","display","Checkbox","checkboxProps","StyledLabel","StyledCheckbox","StyledCustomCheckbox","StyledCheckboxLabel","errorCSS","CloseIcon","Modal","handleClose","isScrollable","title","description","isHasHeader","modalRef","body","classList","add","remove","createPortal","Global","StyledModal","StyledHeaderWrapper","StyledModalTitle","StyledDescriptionWrapper","StyledDescription","StyledHeadingIconsWrapper","switchVariants","before","Switch","switchProps","StyledSwitch","StyledCustomSwitch","StyledSwitchLabel","switchVariantCSS","switchErrorCSS","Radio","radioProps","StyledRadio","StyledCustomRadio","StyledRadioLabel","FileIcon","InputFile","StyledWrapper","files","titleActiveCSS","Divider","StyledDivider","Container","Grid","container","StyledGrid","justify","alignItems","alignContent","direction","containerCSS","wrap","containerSpacingCSS","itemSizeCSS","_excluded2","_excluded3","Box","StyledBox","pt","pb","pr","pl","mt","mb","mr","ml","_ref4","_ref5","_ref6","_ref7","_ref8","Accordion","expanded","detailsBlock","_React$Children$toArr","Children","toArray","_React$Children$toArr2","summary","otherChildren","StyledAccordion","StyledCollapse","onTransitionEnd","AccordionSummary","defaultExpanded","expandIcon","contentStyles","expandedStyles","iconStyles","setExpanded","_detailsBlock$current","_detailsBlock$current2","scrollHeight","getComputedStyle","getPropertyValue","StyledAccordionSummary","prev","StyledSummaryContent","StyledSummaryIcon","shouldForwardProp","prop","AccordionDetails","Skeleton","StyledSkeleton","waveAnim","keyframes","_templateObject","_taggedTemplateLiteral","AppBar","isFixed","StyledAppBar","fixesBarCSS","ToolBar","StyledTollBar","CircularProgress","svgStyles","circleStyles","StyledProgress","StyledSVG","StyledCircle","cx","cy","strokeWidth","rotateAnimate","circleAnimate","_templateObject2","LinearProgress","progressBarStyles","StyledLinearProgress","StyledLinearProgressBar","transform","nextItem","list","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","focus","Tabs","indicatorPos","indicatorHidden","childrenProp","tabListRef","indicatorStyles","setIndicatorStyles","child","childIndex","childValue","selected","_tabListRef$current","selectedTab","offsetLeft","StyledTabs","StyledTabList","tabIndex","role","onKeyDown","currFocus","ownerDocument","activeElement","preventDefault","StyledTabsIndicator","hidden","position","indicatorPositionsCSS","top","Tab","tabRef","StyledTab","id","TabsPanel","tabs","tabPanels","paths","activeTab","_React$useState2","Number","tabsRef","StyledTabsWrapper","_tabsRef$current","history","pushState","route","scrollTo","behavior","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","objectToString","nativeMax","nativeMin","now","debounce","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","toNumber","isObject","cancel","flush","isObjectLike","valueOf","isBinary","lodash_throttle","addPassiveEventListener","eventName","listener","supportsPassiveOption","opts","get","passive","removePassiveEventListener","_lodash2","_lodash","__esModule","scrollSpy","spyCallbacks","spySetState","scrollSpyContainers","mount","scrollSpyContainer","throttle","eventHandler","throttleAmount","eventThrottler","scrollHandler","_passiveEventListeners","isMounted","currentPositionX","supportPageOffset","pageYOffset","isCSS1Compat","compatMode","pageXOffset","documentElement","scrollLeft","currentPositionY","scrollTop","addStateHandler","handler","addSpyHandler","updateStates","unmount","stateHandler","spyHandler","update","getElementOffsetInfoUntil","predicate","offsetTop","currentOffsetParent","offsetParent","updateHash","hash","historyUpdate","hashVal","substring","hashToUpdate","curLoc","urlToPush","pathname","search","state","replaceState","getHash","filterElementInContainer","compareDocumentPosition","scrollOffset","horizontal","getBoundingClientRect","scrollX","scrollY","_getElementOffsetInfo","isDocument","defaultEasing","pow","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","events","subscribe","cancelEvent","Events","registered","scrollEvent","register","evtName","callback","_interopRequireDefault","_utils","_smooth2","_smooth","_cancelEvents2","_cancelEvents","_scrollEvents2","_scrollEvents","getAnimationType","smooth","requestAnimationFrameHelper","currentWindowProperties","delay","containerElement","animateScroll","easing","timestamp","ignoreCancelEvents","delta","round","targetPosition","startPosition","progress","percent","duration","currentPosition","ceil","easedAnimate","setContainer","containerId","getElementById","nodeType","animateTopScroll","delayTimeout","absolute","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","html","scrollContainerWidth","offsetHeight","scrollContainerHeight","toPosition","scrollMore","_utils2","_animateScroll2","_animateScroll","__mapped","__activeLink","unregister","getElementsByName","getElementsByClassName","setActiveLink","link","getActiveLink","offset","warn","scrollHash","mountFlag","initialized","scroller","containers","handleHashChange","initStateFromHash","mapContainer","isInitialized","isInit","changeHash","saveHashHistory","_createClass","defineProperties","descriptor","enumerable","writable","Constructor","protoProps","staticProps","_react2","_react","_scrollSpy2","_scrollSpy","_scroller2","_scroller","_propTypes2","_propTypes","_scrollHash2","_scrollHash","protoTypes","activeClass","activeStyle","spy","isDynamic","onSetActive","onSetInactive","hashSpy","spyThrottle","customScroller","Link","_React$PureComponent","instance","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","_initialiseProps","setPrototypeOf","_inherits","getScrollSpyContainer","setState","trim","handleClick","PureComponent","_this2","stopPropagation","isInside","isOutside","elemLeftBound","elemRightBound","containerLeft","cords","offsetX","floor","elemTopBound","elemBottomBound","containerTop","_cords","offsetY","activeLink","_props$saveHashHistor","_props$saveHashHistor2","_saveHashHistory","_scrollLink2","_scrollLink","LinkElement","_temp","_len","_key","ButtonElement","_reactDom","childBindings","domNode","registerElems","prevProps","parentBindings","_scrollElement2","_scrollElement","ElementWrapper","newProps","el","Helpers","Scroll","defaultScroller","_React$Component2","_this3","Helpers_1","ScrollLink","_Link2","_Link","_Button2","_Button","_Element2","_Element","_Helpers2","_Helpers","ScrollElement","ScrollTab","isScrolling","setIsScrolling","setIsIndicatorHidden","isActive","setIsActive","activeRef","scrollingRef","handleSelect","endScrolling","StyledScrollTab","MenuPanel","tabsId","isIndicatorHidden","_useState6","IconButton","Popper","open","withArrow","withoutMobile","arrowRef","arrowPosition","realPlacement","arrowPlacement","StyledPopperWrapper","StyledPopper","StyledArrow","getAlignment","placement","getLengthFromAxis","axis","getSide","getMainAxisFromPlacement","includes","computeCoordsFromPlacement","rtl","reference","floating","commonX","commonY","mainAxis","commonAlign","isVertical","coords","evaluate","param","getSideObjectFromPadding","padding","right","expandPaddingObject","rectToClientRect","rect","async","detectOverflow","_await$platform$isEle","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","contextElement","getDocumentElement","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","within","min$1","max$1","arrow","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","center","alignmentOffset","centerOffset","oppositeSideMap","getOppositePlacement","side","oppositeAlignmentMap","getOppositeAlignmentPlacement","alignment","flip","_middlewareData$flip","middlewareData","initialPlacement","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","detectOverflowOptions","isBasePlacement","isRTL","oppositePlacement","getExpandedPlacements","isStart","lr","rl","tb","bt","getSideList","getOppositeAxisPlacements","placements","overflow","overflows","overflowsData","cross","mainAlignmentSide","getAlignmentSides","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","reset","resetPlacement","sort","_overflowsData$map$so","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","alignmentAxis","convertValueToCoords","getWindow","_node$ownerDocument","defaultView","getComputedStyle$1","Node","getNodeName","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","isTableElement","isContainingBlock","safari","isSafari","perspective","backdropFilter","some","willChange","contain","CSS","supports","isLastTraversableNode","createEmptyCoords","getCssDimensions","hasOffset","shouldFallback","$","unwrapElement","domElement","isFinite","noOffsets","getVisualOffsets","floatingOffsetParent","_win$visualViewport","_win$visualViewport2","win","visualViewport","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentIFrame","frameElement","iframeScale","iframeRect","clientLeft","clientTop","paddingTop","getNodeScroll","getWindowScrollBarX","getParentNode","assignedSlot","parentNode","host","getNearestOverflowAncestor","getOverflowAncestors","scrollableAncestor","isBody","getClientRectFromClippingAncestor","clippingAncestor","visualViewportBased","getViewportRect","scroll","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getTrueOffsetParent","polyfill","currentNode","getContainingBlock","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","clippingAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","set","getClippingElementAncestors","_c","firstClippingAncestor","clippingRect","accRect","getOffsetParentFn","getDimensionsFn","getClientRects","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","cleanupIo","onMove","timeoutId","io","cleanup","disconnect","refresh","skip","threshold","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","ratio","intersectionRatio","rootMargin","observe","observeMove","frameId","resizeObserver","ResizeObserver","prevRefRect","frameLoop","nextRefRect","computePosition","Map","mergedOptions","platformWithCache","config","middleware","validMiddleware","Boolean","getElementRects","statefulPlacement","resetCount","nextX","nextY","computePosition$1","arrow$1","useLayoutEffect","deepEqual","getDPR","devicePixelRatio","roundByDPR","dpr","useLatestRef","serverHandoffComplete","count","genId","useId","setId","FloatingNodeContext","createContext","FloatingTreeContext","useFloatingTree","useContext","getDocument","isVirtualClick","mozInputSource","isTrusted","androidRe","uaData","userAgentData","getPlatform","brands","version","getUserAgent","pointerType","buttons","detail","isVirtualPointerEvent","pressure","isMouseLikePointerType","strict","getChildren","nodes","allChildren","_node$context","parentId","context","currentChildren","_currentChildren","_node$context2","TYPEABLE_SELECTOR","isButtonTarget","tagName","isSpaceIgnored","isTypeableElement","useSafeInsertionEffect","useEffectEvent","useCallback","isEventTargetWithin","composedPath","bubbleHandlerKeys","pointerdown","mousedown","click","captureHandlerKeys","useDismiss","onOpenChange","nodeId","domReference","dataRef","enabled","escapeKey","outsidePress","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","bubbles","tree","nested","_React$useContext","outsidePressFn","insideReactTreeRef","escapeKeyBubbles","outsidePressBubbles","_bubbles$escapeKey","_bubbles$outsidePress","normalizeBubblesProp","closeOnEscapeKeyDown","nodesRef","shouldDismiss","_child$context","__escapeKeyBubbles","emit","returnFocus","preventScroll","isReactEvent","nativeEvent","closeOnPressOutside","insideReactTree","getTarget","canScrollX","canScrollY","xCond","targetIsInsideChildren","_child$context2","__outsidePressBubbles","onScroll","doc","_doc$defaultView","useFloating","_options$elements","unstable_onOpenChange","_domReference","setDomReference","externalReference","externalFloating","whileElementsMounted","setData","isPositioned","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","whileElementsMountedRef","platformRef","then","fullData","isMountedRef","ReactDOM","flushSync","refs","floatingStyles","initialStyles","useFloating$1","openEvent","domReferenceRef","_map$get","on","off","_map$get2","createPubSub","floatingId","setPositionReference","positionReference","find","mergeProps","userProps","propsList","elementKey","Tooltip","content","onOpen","onClose","controlledOpen","cursor","toggleMethod","popper","setOpen","_useFloating","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","eventOption","toggle","ignoreMouse","keyboardHandlers","pointerTypeRef","didKeyDownRef","onPointerDown","button","onKeyUp","useClick","dismiss","referenceId","floatingProps","useRole","_useInteractions","deps","getReferenceProps","getFloatingProps","getItemProps","useInteractions","onMouseLeave","StyledContentWrapper","onMouseEnter","StyledContent","ErrorComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/theme/colors/index.js","../src/theme/shadows/index.js","../src/theme/breakpoints/index.js","../src/theme/settings/index.js","../src/theme/index.js","../../../node_modules/classnames/index.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../src/components/Heading/variants.js","../src/components/Heading/index.js","../src/components/Caption/variants.js","../src/components/Caption/index.js","../src/components/Text/variants.js","../src/components/Text/index.js","../src/components/Button/variants.js","../src/components/Button/index.js","../src/icons/ErrorIcon.js","../src/icons/WarningIcon.js","../src/icons/SuccessIcon.js","../src/components/InputMessage/variants.js","../src/components/InputMessage/index.js","../src/icons/TextareaGrabIcon.js","../src/components/Input/index.js","../src/components/InputWithAdornments/index.js","../../../node_modules/react-input-mask/lib/react-input-mask.production.min.js","../../../node_modules/invariant/invariant.js","../../../node_modules/warning/warning.js","../../../node_modules/react-input-mask/lib/react-input-mask.development.js","../../../node_modules/react-input-mask/index.js","../src/components/InputWithMask/index.js","../src/components/InputWithCountryDropdown/Dropdown/CountryItem/index.js","../src/icons/SearchIcon.js","../src/components/InputWithCountryDropdown/Dropdown/index.js","../src/icons/HalfArrowIcon.js","../src/components/InputWithCountryDropdown/index.js","../src/components/Checkbox/index.js","../src/icons/CloseIcon.js","../src/components/Modal/index.js","../src/components/Switch/variants.js","../src/components/Switch/index.js","../src/components/Radio/index.js","../src/icons/FileIcon.js","../src/components/InputFile/index.js","../src/components/Divider/index.js","../src/components/Container/index.js","../src/components/Grid/index.js","../src/components/Box/index.js","../src/components/Accordion/index.js","../src/components/AccordionSummary/index.js","../src/components/AccordionDetails/index.js","../src/components/Skeleton/index.js","../src/components/AppBar/index.js","../src/components/ToolBar/index.js","../src/components/CircularProgress/index.js","../src/components/LinearProgress/index.js","../src/components/Tabs/index.js","../src/components/Tab/index.js","../src/components/TabsPanel/index.js","../../../node_modules/lodash.throttle/index.js","../../../node_modules/react-scroll/modules/mixins/passive-event-listeners.js","../../../node_modules/react-scroll/modules/mixins/scroll-spy.js","../../../node_modules/react-scroll/modules/mixins/utils.js","../../../node_modules/react-scroll/modules/mixins/smooth.js","../../../node_modules/react-scroll/modules/mixins/cancel-events.js","../../../node_modules/react-scroll/modules/mixins/scroll-events.js","../../../node_modules/react-scroll/modules/mixins/animate-scroll.js","../../../node_modules/react-scroll/modules/mixins/scroller.js","../../../node_modules/react-scroll/modules/mixins/scroll-hash.js","../../../node_modules/react-scroll/modules/mixins/scroll-link.js","../../../node_modules/react-scroll/modules/components/Link.js","../../../node_modules/react-scroll/modules/components/Button.js","../../../node_modules/react-scroll/modules/mixins/scroll-element.js","../../../node_modules/react-scroll/modules/components/Element.js","../../../node_modules/react-scroll/modules/mixins/Helpers.js","../../../node_modules/react-scroll/modules/index.js","../src/components/ScrollTab/index.js","../src/components/MenuPanel/index.js","../src/components/IconButton/index.js","../src/components/Popper/index.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js","../../../node_modules/@floating-ui/react/dist/floating-ui.react.esm.js","../src/components/Tooltip/index.js","../src/components/ErrorComponent/index.js"],"sourcesContent":["const colors = {\r\n primary: {\r\n main: \"#ED713C\",\r\n pressed: \"#D24C13\",\r\n hover: \"#EA5A1D\",\r\n light: \"#FCEAE2\",\r\n light2: \"#FEF7F3\",\r\n },\r\n secondary: {\r\n main: \"#18191F\",\r\n gray60: \"#474A57\",\r\n gray50: \"#7F8285\",\r\n gray40: \"#949494\",\r\n gray30: \"#BFBFBF\",\r\n gray15: \"#EAECEF\",\r\n white: \"#FFFFFF\",\r\n light: \"#C4C4C4\",\r\n disabled: \"#A6AEBC\",\r\n },\r\n background: {\r\n main: \"#FBFBFD\",\r\n light2: \"#F7F8F9\",\r\n light3: \"#F2F3F5\",\r\n },\r\n success: {\r\n green70: \"#259E58\",\r\n green60: \"#23A65A\",\r\n main: \"#27AE60\",\r\n green10: \"#EAFCF7\",\r\n green5: \"#F0FDF9\",\r\n },\r\n error: {\r\n red70: \"#D03C1A\",\r\n red60: \"#DA421F\",\r\n main: \"#EB4620\",\r\n red10: \"#FCE3DE\",\r\n red5: \"#FDF0ED\",\r\n },\r\n info: {\r\n blue70: \"#0098B6\",\r\n blue60: \"#009CBB\",\r\n main: \"#00ABCD\",\r\n blue10: \"#D9F2F8\",\r\n blue5: \"#E5F7FA\",\r\n },\r\n purple: {\r\n purple70: \"#914BD2\",\r\n purple60: \"#974EDB\",\r\n main: \"#9B51E0\",\r\n purple10: \"#F0E5FA\",\r\n purple5: \"#F7F1FD\",\r\n },\r\n}\r\n\r\nexport default colors\r\n","const shadows = {\r\n shadow1: \"0px 5px 16px rgba(0, 0, 0, 0.1)\",\r\n shadow2: \"0px 12px 16px rgba(0, 0, 0, 0.08)\",\r\n shadow3: \"0px 26px 34px rgba(0, 0, 0, 0.1)\",\r\n shadow4: \"0px 10px 20px rgba(0, 0, 0, 0.1)\",\r\n}\r\n\r\nexport default shadows\r\n","const breakpoints = {\r\n xxs: 375,\r\n xs: 600,\r\n sm: 900,\r\n md: 1200,\r\n lg: 1440,\r\n xl: 1536,\r\n}\r\n\r\nexport default breakpoints\r\n","const settings = {\r\n spacing: 8,\r\n columns: 12,\r\n}\r\n\r\nexport default settings\r\n","import colors from \"./colors\"\r\nimport shadows from \"./shadows\"\r\nimport breakpoints from \"./breakpoints\"\r\nimport settings from \"./settings\"\r\n\r\nconst palette = {\r\n brand: {\r\n ...colors.primary,\r\n background: colors.primary.light2,\r\n },\r\n grey: {\r\n seventy: colors.secondary.main,\r\n sixty: colors.secondary.gray60,\r\n fiftyP: colors.secondary.gray50,\r\n fourty: colors.secondary.gray40,\r\n thirty: colors.secondary.gray30,\r\n fifteenB: colors.secondary.gray15,\r\n zero: colors.secondary.white,\r\n },\r\n background: {\r\n ...colors.background,\r\n light1: colors.background.main,\r\n light4: \"#C5C6C7\",\r\n },\r\n green: {\r\n fiftyP: colors.success.main,\r\n seventy: colors.success.green70,\r\n sixty: colors.success.green60,\r\n ten: colors.success.green10,\r\n five: colors.success.green5,\r\n },\r\n red: {\r\n fiftyP: colors.error.main,\r\n seventy: colors.error.red70,\r\n sixty: colors.error.red60,\r\n ten: colors.error.red10,\r\n five: colors.error.red5,\r\n },\r\n blue: {\r\n fiftyP: colors.info.main,\r\n seventy: colors.info.blue70,\r\n sixty: colors.info.blue60,\r\n ten: colors.info.blue10,\r\n five: colors.info.blue5,\r\n },\r\n purple: {\r\n fiftyP: colors.purple.main,\r\n seventy: colors.purple.purple70,\r\n sixty: colors.purple.purple60,\r\n ten: colors.purple.purple10,\r\n five: colors.purple.purple5,\r\n },\r\n}\r\n\r\nconst themeOld = {\r\n palette: colors,\r\n breakpoints,\r\n shadows,\r\n settings,\r\n}\r\n\r\nconst theme = {\r\n palette,\r\n breakpoints,\r\n shadows,\r\n settings,\r\n}\r\n\r\nexport { themeOld, theme }\r\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","const headingSizes = {\r\n hero: \"h1\",\r\n h1: \"h1\",\r\n h2: \"h2\",\r\n h3: \"h3\",\r\n h4: \"h4\",\r\n}\r\n\r\nconst headingVariants = {\r\n hero: {\r\n size: 56,\r\n height: 72,\r\n mobSize: 32,\r\n mobHeight: 48,\r\n },\r\n h1: {\r\n size: 32,\r\n height: 48,\r\n mobSize: 24,\r\n mobHeight: 32,\r\n },\r\n h2: {\r\n size: 24,\r\n height: 32,\r\n mobSize: 18,\r\n mobHeight: 24,\r\n },\r\n h3: {\r\n size: 18,\r\n height: 24,\r\n mobSize: 16,\r\n mobHeight: 24,\r\n },\r\n h4: {\r\n size: 16,\r\n height: 24,\r\n mobSize: 14,\r\n mobHeight: 24,\r\n },\r\n}\r\n\r\nexport { headingVariants, headingSizes }\r\n","import React, { forwardRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport { theme } from \"../../theme\"\r\nimport { headingSizes, headingVariants } from \"./variants\"\r\n\r\nconst { breakpoints, palette } = theme\r\n\r\nconst Heading = forwardRef((props, ref) => {\r\n const { size, children, className, ...otherProps } = props\r\n\r\n return (\r\n <StyledHeading\r\n as={headingSizes[size]}\r\n size={headingVariants[size]}\r\n className={classNames(\"KUI-Heading\", className)}\r\n ref={ref}\r\n {...otherProps}\r\n >\r\n {children}\r\n </StyledHeading>\r\n )\r\n})\r\n\r\nHeading.defaultProps = {\r\n size: \"h1\",\r\n color: \"seventy\",\r\n colorGroup: \"grey\",\r\n disableUserSelect: false,\r\n weight: 700,\r\n}\r\n\r\nHeading.propTypes = {\r\n size: PropTypes.oneOf([\"hero\", \"h1\", \"h2\", \"h3\", \"h4\"]),\r\n disableUserSelect: PropTypes.bool,\r\n weight: PropTypes.number,\r\n}\r\n\r\nexport default Heading\r\n\r\nconst headingSettingsCSS = (props) => css`\r\n font-size: ${props.size.size}px;\r\n line-height: ${props.size.height}px;\r\n text-align: ${props.align};\r\n color: ${palette[props.colorGroup][props.color]\r\n ? palette[props.colorGroup][props.color]\r\n : palette.grey.seventy};\r\n font-weight: ${props.weight};\r\n ${props.disableUserSelect && \"user-select: none\"};\r\n @media (max-width: ${breakpoints.sm}px) {\r\n font-size: ${props.size.mobSize}px;\r\n line-height: ${props.size.mobHeight}px;\r\n }\r\n`\r\n\r\nconst StyledHeading = styled.h1`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n text-transform: none;\r\n margin: 0;\r\n font-weight: 700;\r\n ${headingSettingsCSS};\r\n`\r\n","const captionSizes = {\r\n xs: {\r\n size: 12,\r\n height: 14,\r\n },\r\n sm: {\r\n size: 13,\r\n height: 14,\r\n high: 20,\r\n },\r\n s: {\r\n size: 14,\r\n height: 18,\r\n high: 22,\r\n },\r\n m: {\r\n size: 16,\r\n height: 24,\r\n },\r\n l: {\r\n size: 18,\r\n height: 28,\r\n },\r\n}\r\n\r\nexport default captionSizes\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport captionSizes from \"./variants\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst Caption = forwardRef((props, ref) => {\r\n const { children, size, className, ...otherProps } = props\r\n\r\n return (\r\n <StyledCaption\r\n size={captionSizes[size]}\r\n className={classNames(\"KUI-Caption\", className)}\r\n ref={ref}\r\n {...otherProps}\r\n >\r\n {children}\r\n </StyledCaption>\r\n )\r\n})\r\n\r\nCaption.defaultProps = {\r\n size: \"m\",\r\n weight: 400,\r\n color: \"seventy\",\r\n colorGroup: \"grey\",\r\n disableUserSelect: false,\r\n variant: \"default\",\r\n}\r\n\r\nCaption.displayName = \"Caption\"\r\n\r\nCaption.propTypes = {\r\n size: PropTypes.oneOf([\"xs\", \"sm\", \"s\", \"m\", \"l\"]),\r\n weight: PropTypes.oneOf([400, 500, 600, 700]),\r\n disableUserSelect: PropTypes.bool,\r\n variant: PropTypes.oneOf([\"default\", \"high\"]),\r\n}\r\n\r\nexport default Caption\r\n\r\nconst captionSettingsCSS = ({\r\n size,\r\n weight,\r\n align,\r\n color,\r\n colorGroup,\r\n disSelect,\r\n variant,\r\n}) => css`\r\n font-size: ${size.size}px;\r\n line-height: ${variant === \"high\" ? size.high || size.height : size.height}px;\r\n font-weight: ${weight};\r\n text-align: ${align};\r\n ${disSelect && \"user-select: none\"};\r\n color: ${theme.palette[colorGroup][color]\r\n ? theme.palette[colorGroup][color]\r\n : theme.palette.grey.seventy};\r\n`\r\n\r\nconst StyledCaption = styled.p`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n text-transform: none;\r\n margin: 0;\r\n ${captionSettingsCSS};\r\n`\r\n","const textVariants = {\r\n xs: {\r\n size: 13,\r\n height: 20,\r\n },\r\n s: {\r\n size: 14,\r\n height: 22,\r\n },\r\n m: {\r\n size: 18,\r\n height: 28,\r\n },\r\n}\r\n\r\nexport default textVariants\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport { css } from \"@emotion/react\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\nimport textVariants from \"./variants\"\r\n\r\nfunction Text(props) {\r\n const { children, size, className, ...otherProps } = props\r\n\r\n return (\r\n <StyledText\r\n size={textVariants[size]}\r\n className={classNames(\"KUI-Text\", className)}\r\n {...otherProps}\r\n >\r\n {children}\r\n </StyledText>\r\n )\r\n}\r\n\r\nText.defaultProps = {\r\n size: \"s\",\r\n color: \"seventy\",\r\n disableUserSelect: false,\r\n weight: 400,\r\n}\r\n\r\nText.propTypes = {\r\n size: PropTypes.oneOf([\"xs\", \"s\", \"m\"]),\r\n weight: PropTypes.oneOf([400, 500, 600]),\r\n color: PropTypes.oneOf([\r\n \"seventy\",\r\n \"sixty\",\r\n \"fiftyP\",\r\n \"fourty\",\r\n \"zero\",\r\n \"brand\",\r\n ]),\r\n disableUserSelect: PropTypes.bool,\r\n}\r\n\r\nexport default Text\r\n\r\nconst textSettingsCSS = ({ size, weight, color, disSelect }) => css`\r\n font-size: ${size.size}px;\r\n line-height: ${size.height}px;\r\n font-weight: ${weight};\r\n ${disSelect && \"user-select: none\"};\r\n color: ${theme.palette.grey[color]\r\n ? theme.palette.grey[color]\r\n : theme.palette.brand.main};\r\n`\r\n\r\nconst StyledText = styled.p`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n text-transform: none;\r\n margin: 0;\r\n ${textSettingsCSS};\r\n`\r\n","import { theme } from \"../../theme\"\r\n\r\nconst palette = theme.palette\r\n\r\nconst buttonSizes = {\r\n xs: 32,\r\n s: 40,\r\n m: 48,\r\n l: 56,\r\n}\r\n\r\nconst buttonBorders = {\r\n brand: palette.brand.main,\r\n lightGray: palette.grey.fifteenB,\r\n lightOrange: palette.brand.light,\r\n}\r\n\r\nconst buttonVariants = {\r\n primary: {\r\n background: palette.brand.main,\r\n color: palette.grey.zero,\r\n hover: palette.brand.hover,\r\n active: palette.brand.pressed,\r\n },\r\n orange: {\r\n background: palette.brand.light,\r\n color: palette.brand.main,\r\n hover: palette.brand.hover,\r\n active: palette.brand.pressed,\r\n hoverColor: palette.grey.zero,\r\n },\r\n white: {\r\n background: palette.grey.zero,\r\n color: palette.grey.seventy,\r\n hover: palette.background.light1,\r\n active: palette.grey.fifteenB,\r\n border: palette.grey.fifteenB,\r\n },\r\n whiteWithOrangeHover: {\r\n color: palette.grey.sixty,\r\n hover: palette.brand.light,\r\n active: palette.brand.light,\r\n hoverColor: palette.brand.main,\r\n },\r\n whiteWithGray: {\r\n background: palette.grey.zero,\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light1,\r\n active: palette.grey.fifteenB,\r\n hoverColor: palette.grey.seventy,\r\n border: palette.background.light3,\r\n },\r\n whiteWithBrand: {\r\n background: palette.grey.zero,\r\n color: palette.brand.main,\r\n },\r\n grayLightWithBorder: {\r\n background: palette.background.light1,\r\n color: palette.grey.fiftyP,\r\n border: palette.grey.fifteenB,\r\n hover: palette.background.light2,\r\n hoverColor: palette.grey.seventy,\r\n active: palette.grey.fifteenB,\r\n },\r\n grayLight: {\r\n background: palette.background.light2,\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light3,\r\n hoverColor: palette.grey.seventy,\r\n active: palette.grey.fifteenB,\r\n },\r\n grayDark: {\r\n background: palette.grey.fiftyP,\r\n color: palette.grey.zero,\r\n hover: palette.grey.sixty,\r\n hoverColor: palette.grey.zero,\r\n pressed: palette.grey.sixty,\r\n },\r\n backgroundLight: {\r\n background: palette.background.light2,\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light1,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n },\r\n backgroundWithBorder: {\r\n background: palette.background.light1,\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light3,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n border: palette.grey.fifteenB,\r\n },\r\n blur: {\r\n background: \"rgba(0, 0, 0, 0.6)\",\r\n color: palette.grey.zero,\r\n hover: \"rgba(0, 0, 0, 0.7)\",\r\n active: \"rgba(0, 0, 0, 0.8)\",\r\n backdrop: \"blur(4px)\",\r\n },\r\n blurDark: {\r\n background: \"rgba(0, 0, 0, 0.6)\",\r\n color: palette.grey.zero,\r\n hover: \"rgba(0, 0, 0, 0.8)\",\r\n hoverColor: palette.grey.zero,\r\n pressed: \"rgba(0, 0, 0, 1)\",\r\n },\r\n green: {\r\n background: palette.green.fiftyP,\r\n color: palette.grey.zero,\r\n hover: palette.green.sixty,\r\n active: palette.green.seventy,\r\n },\r\n red: {\r\n background: palette.red.fiftyP,\r\n color: palette.grey.zero,\r\n hover: palette.red.sixty,\r\n active: palette.red.seventy,\r\n },\r\n error: {\r\n background: palette.red.five,\r\n color: palette.red.fiftyP,\r\n hover: palette.red.ten,\r\n hoverColor: palette.red.fiftyP,\r\n pressed: palette.red.ten,\r\n },\r\n transparent: {\r\n withoutShadow: true,\r\n },\r\n orangeWithHoverLight: {\r\n background: palette.brand.background,\r\n color: palette.brand.main,\r\n hover: palette.brand.background,\r\n hoverColor: palette.brand.main,\r\n pressed: palette.brand.background,\r\n },\r\n orangeWithBorder: {\r\n background: palette.brand.light,\r\n color: palette.brand.main,\r\n hover: palette.brand.background,\r\n hoverColor: palette.brand.main,\r\n pressed: palette.brand.background,\r\n border: palette.brand.main,\r\n },\r\n transparentLight: {\r\n color: palette.grey.thirty,\r\n hoverColor: palette.grey.fiftyP,\r\n pressed: palette.grey.fifteenB,\r\n withoutShadow: true,\r\n },\r\n transparentWithBorder: {\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light3,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n border: palette.grey.fifteenB,\r\n },\r\n transparentWithDarkBorder: {\r\n color: palette.grey.fiftyP,\r\n hover: palette.background.light3,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n border: palette.grey.fiftyP,\r\n },\r\n transparentWithBoldBorder: {\r\n color: palette.grey.thirty,\r\n hover: palette.background.light1,\r\n hoverColor: palette.grey.seventy,\r\n pressed: palette.grey.fifteenB,\r\n border: palette.grey.thirty,\r\n },\r\n}\r\n\r\nexport { buttonSizes, buttonBorders, buttonVariants }\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport { css } from \"@emotion/react\"\r\nimport styled from \"@emotion/styled\"\r\nimport Caption from \"../Caption\"\r\nimport { buttonSizes, buttonBorders, buttonVariants } from \"./variants\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst Button = forwardRef((props, ref) => {\r\n const {\r\n children,\r\n variant,\r\n size,\r\n className,\r\n fullWidth,\r\n isCircle,\r\n captionSize,\r\n disabledStyle,\r\n border,\r\n startIcon,\r\n endIcon,\r\n captionWeight,\r\n withoutChildrenWrapper,\r\n ...buttonProps\r\n } = props\r\n\r\n return (\r\n <StyledButton\r\n ref={ref}\r\n size={size}\r\n variant={variant}\r\n border={border}\r\n fullWidth={fullWidth}\r\n isCircle={isCircle}\r\n className={classNames(\r\n \"KUI-Button\",\r\n buttonProps.disabled && \"KUI-Button_disabled\",\r\n buttonProps.disabled && disabledStyle,\r\n className\r\n )}\r\n {...buttonProps}\r\n >\r\n {isCircle ? (\r\n <StyledCircleButtonContainer className=\"KUI-Button_circle-container\">\r\n {children}\r\n </StyledCircleButtonContainer>\r\n ) : (\r\n <StyledContentContainer\r\n withIcon={startIcon || endIcon}\r\n className={classNames(\r\n (startIcon || endIcon) && \"KUI-Button_icon-container\"\r\n )}\r\n >\r\n {startIcon && (\r\n <StyledStartIcon className=\"KUI-Button_start-icon\">\r\n {startIcon}\r\n </StyledStartIcon>\r\n )}\r\n\r\n {withoutChildrenWrapper ? (\r\n children\r\n ) : (\r\n <Caption\r\n size={captionSize}\r\n weight={captionWeight}\r\n className=\"KUI-Button-text\"\r\n >\r\n {children}\r\n </Caption>\r\n )}\r\n\r\n {endIcon && (\r\n <StyledEndIcon className=\"KUI-Button_end-icon\">\r\n {endIcon}\r\n </StyledEndIcon>\r\n )}\r\n </StyledContentContainer>\r\n )}\r\n </StyledButton>\r\n )\r\n})\r\n\r\nButton.defaultProps = {\r\n variant: \"primary\",\r\n size: \"m\",\r\n fullWidth: false,\r\n endIcon: null,\r\n startIcon: null,\r\n disabled: false,\r\n isCircle: false,\r\n captionSize: \"s\",\r\n border: null,\r\n captionWeight: 600,\r\n}\r\n\r\nButton.propTypes = {\r\n size: PropTypes.oneOf([\"xs\", \"s\", \"m\", \"l\"]),\r\n fullWidth: PropTypes.bool,\r\n endIcon: PropTypes.element,\r\n startIcon: PropTypes.element,\r\n disabled: PropTypes.bool,\r\n isCircle: PropTypes.bool,\r\n captionSize: PropTypes.oneOf([\"xs\", \"sm\", \"s\", \"m\", \"l\"]),\r\n border: PropTypes.oneOf([\"brand\", \"lightGray\", \"lightOrange\"]),\r\n}\r\n\r\nButton.displayName = \"Button\"\r\n\r\nexport default Button\r\n\r\nconst buttonVariantCSS = (variant) => css`\r\n background-color: ${variant.background ? variant.background : \"transparent\"};\r\n & .KUI-Button-text {\r\n ${variant.color && `color: ${variant.color}`};\r\n }\r\n svg path {\r\n ${variant.color && `fill: ${variant.color}`};\r\n }\r\n border: 1px solid ${variant.border ? variant.border : \"transparent\"};\r\n ${variant.backdrop && `backdrop-filter: ${variant.backdrop}`};\r\n @media (hover: hover) {\r\n &:hover {\r\n box-shadow: ${variant.withoutShadow ? \"none\" : theme.shadows.shadow1};\r\n ${variant.hover && `background-color: ${variant.hover}`};\r\n & .KUI-Button-text {\r\n ${variant.hoverColor && `color: ${variant.hoverColor}`};\r\n }\r\n svg path {\r\n ${variant.hoverColor && `fill: ${variant.hoverColor}`};\r\n }\r\n }\r\n &:active {\r\n ${variant.active && `background-color: ${variant.active}`};\r\n }\r\n }\r\n`\r\n\r\nconst circleButtonCSS = ({ isCircle, size }) =>\r\n isCircle &&\r\n css`\r\n padding: 0;\r\n border-radius: 50%;\r\n display: inline-flex;\r\n width: ${buttonSizes[size]}px;\r\n `\r\n\r\nconst buttonSettingsCSS = (props) => css`\r\n width: ${props.fullWidth ? \"100%\" : \"max-content\"};\r\n height: ${buttonSizes[props.size]}px;\r\n ${buttonVariantCSS(buttonVariants[props.variant])};\r\n ${props.border && `border-color: ${buttonBorders[props.border]}`};\r\n`\r\n\r\nconst StyledButton = styled.button`\r\n position: relative;\r\n border-radius: 66px;\r\n padding: 0 16px;\r\n transition: all linear 0.3s;\r\n width: max-content;\r\n text-align: center;\r\n cursor: pointer;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n ${buttonSettingsCSS};\r\n ${circleButtonCSS};\r\n & .KUI-Button-text,\r\n svg path {\r\n transition: all linear 0.3s;\r\n }\r\n &:disabled,\r\n &:disabled:hover,\r\n &:disabled:active {\r\n cursor: default;\r\n background-color: ${theme.palette.background.light3};\r\n box-shadow: none;\r\n & .KUI-Button-text {\r\n color: #a6aebc;\r\n }\r\n svg path {\r\n fill: #a6aebc;\r\n }\r\n }\r\n`\r\n\r\nconst StyledCircleButtonContainer = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n width: inherit;\r\n`\r\n\r\nconst iconContainerCSS = ({ withIcon }) =>\r\n withIcon &&\r\n css`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n `\r\n\r\nconst StyledContentContainer = styled.div`\r\n ${iconContainerCSS};\r\n`\r\n\r\nconst StyledStartIcon = styled.span`\r\n margin-right: 8px;\r\n display: flex;\r\n`\r\n\r\nconst StyledEndIcon = styled.span`\r\n margin-left: 8px;\r\n display: flex;\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst ErrorIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-label=\"error\"\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M7.99935 15.3334C12.0494 15.3334 15.3327 12.0502 15.3327 8.00008C15.3327 3.94999 12.0494 0.666748 7.99935 0.666748C3.94926 0.666748 0.666016 3.94999 0.666016 8.00008C0.666016 12.0502 3.94926 15.3334 7.99935 15.3334ZM7.99935 13.3334C10.9449 13.3334 13.3327 10.9456 13.3327 8.00008C13.3327 5.05456 10.9449 2.66675 7.99935 2.66675C5.05383 2.66675 2.66602 5.05456 2.66602 8.00008C2.66602 10.9456 5.05383 13.3334 7.99935 13.3334ZM9.52795 5.52868C9.78829 5.26833 10.2104 5.26833 10.4708 5.52868C10.7311 5.78903 10.7311 6.21114 10.4708 6.47149L8.94216 8.00008L10.4708 9.52868C10.7311 9.78903 10.7311 10.2111 10.4708 10.4715C10.2104 10.7318 9.78829 10.7318 9.52795 10.4715L7.99935 8.94289L6.47075 10.4715C6.2104 10.7318 5.78829 10.7318 5.52794 10.4715C5.2676 10.2111 5.2676 9.78903 5.52794 9.52868L7.05654 8.00008L5.52794 6.47149C5.2676 6.21114 5.2676 5.78903 5.52794 5.52868C5.78829 5.26833 6.2104 5.26833 6.47075 5.52868L7.99935 7.05727L9.52795 5.52868Z\"\r\n fill=\"#EB5757\"\r\n />\r\n </svg>\r\n)\r\n\r\nErrorIcon.defaultProps = {\r\n width: 16,\r\n height: 16,\r\n}\r\n\r\nErrorIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default ErrorIcon\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst WarningIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-label=\"warning\"\r\n >\r\n <path\r\n d=\"M6.99999 0.142883C10.7871 0.142883 13.8571 3.21293 13.8571 7.00002C13.8571 10.7871 10.7871 13.8572 6.99999 13.8572C3.2129 13.8572 0.142853 10.7871 0.142853 7.00002C0.142853 3.21293 3.2129 0.142883 6.99999 0.142883ZM6.99999 1.28574C3.84408 1.28574 1.28571 3.84411 1.28571 7.00002C1.28571 10.1559 3.84408 12.7143 6.99999 12.7143C10.1559 12.7143 12.7143 10.1559 12.7143 7.00002C12.7143 3.84411 10.1559 1.28574 6.99999 1.28574ZM6.99999 9.05717C7.44182 9.05717 7.79999 9.41534 7.79999 9.85717C7.79999 10.299 7.44182 10.6572 6.99999 10.6572C6.55817 10.6572 6.2 10.299 6.2 9.85717C6.2 9.41534 6.55817 9.05717 6.99999 9.05717ZM7.04206 3.57145C7.17783 3.57145 7.26306 3.59267 7.33756 3.63251C7.41206 3.67235 7.47052 3.73082 7.51036 3.80532C7.55021 3.87982 7.57142 3.96504 7.57142 4.10081V7.61352C7.57142 7.74929 7.55021 7.83452 7.51036 7.90902C7.47052 7.98352 7.41206 8.04198 7.33756 8.08182C7.26306 8.12166 7.17783 8.14288 7.04206 8.14288H6.95793C6.82215 8.14288 6.73693 8.12166 6.66243 8.08182C6.58793 8.04198 6.52947 7.98352 6.48962 7.90902C6.44978 7.83452 6.42857 7.74929 6.42857 7.61352V4.10081C6.42857 3.96504 6.44978 3.87982 6.48962 3.80532C6.52947 3.73082 6.58793 3.67235 6.66243 3.63251C6.73693 3.59267 6.82215 3.57145 6.95793 3.57145H7.04206Z\"\r\n fill=\"#ED713C\"\r\n />\r\n </svg>\r\n)\r\n\r\nWarningIcon.defaultProps = {\r\n width: 16,\r\n height: 16,\r\n}\r\n\r\nWarningIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default WarningIcon\r\n","import PropTypes from \"prop-types\"\r\nimport React from \"react\"\r\n\r\nconst SuccessIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-label=\"success\"\r\n >\r\n <path\r\n d=\"M6.99999 0.142883C10.7871 0.142883 13.8571 3.21293 13.8571 7.00002C13.8571 10.7871 10.7871 13.8572 6.99999 13.8572C3.2129 13.8572 0.142853 10.7871 0.142853 7.00002C0.142853 3.21293 3.2129 0.142883 6.99999 0.142883ZM6.99999 1.28574C3.84408 1.28574 1.28571 3.84411 1.28571 7.00002C1.28571 10.1559 3.84408 12.7143 6.99999 12.7143C10.1559 12.7143 12.7143 10.1559 12.7143 7.00002C12.7143 3.84411 10.1559 1.28574 6.99999 1.28574ZM9.45142 4.88003C9.67458 4.65687 10.0397 4.65687 10.2629 4.88003C10.486 5.10318 10.486 5.4683 10.2629 5.69145L6.2612 9.6898C6.03804 9.91296 5.67623 9.91296 5.45308 9.6898L3.45308 7.6898C3.22992 7.46664 3.22992 7.10484 3.45308 6.88168C3.67623 6.65852 4.03804 6.65852 4.2612 6.88168L5.85714 8.47762L9.45142 4.88003Z\"\r\n fill=\"#27AE60\"\r\n />\r\n </svg>\r\n)\r\n\r\nSuccessIcon.defaultProps = {\r\n width: 16,\r\n height: 16,\r\n}\r\n\r\nSuccessIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default SuccessIcon\r\n","import React from \"react\"\r\nimport ErrorIcon from \"../../icons/ErrorIcon\"\r\nimport WarningIcon from \"../../icons/WarningIcon\"\r\nimport SuccessIcon from \"../../icons/SuccessIcon\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst messageVariants = {\r\n error: {\r\n background: theme.palette.red.five,\r\n color: theme.palette.red.fiftyP,\r\n icon: <ErrorIcon />,\r\n },\r\n warning: {\r\n background: theme.palette.purple.ten,\r\n color: theme.palette.purple.seventy,\r\n icon: <WarningIcon />,\r\n },\r\n success: {\r\n background: theme.palette.green.five,\r\n color: theme.palette.green.fiftyP,\r\n icon: <SuccessIcon />,\r\n },\r\n}\r\n\r\nexport default messageVariants\r\n","import React, { useEffect, useRef, useState } from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport Caption from \"../Caption\"\nimport messageVariants from \"./variants\"\n\nfunction InputMessage(props) {\n const { msg, variant, className, ...otherProps } = props\n const messageRef = useRef(null)\n const [messageRefHeight, setMessageRefHeight] = useState(32)\n\n useEffect(() => {\n setMessageRefHeight(messageRef?.current?.clientHeight)\n }, [messageRef?.current?.clientHeight])\n\n return (\n <StyledMessage\n ref={messageRef}\n variant={messageVariants[variant]}\n className={classNames(\n \"KUI-InputMessage\",\n `KUI-InputMessage_${variant}`,\n className\n )}\n style={{ bottom: `-${messageRefHeight}px` }}\n {...otherProps}\n >\n <StyledIconWrapper className=\"KUI-InputMessage_icon\">\n {messageVariants[variant].icon}\n </StyledIconWrapper>\n <StyledTitle className=\"KUI-InputMessage_title\" size=\"xs\" weight={600}>\n {msg}\n </StyledTitle>\n </StyledMessage>\n )\n}\n\nInputMessage.defaultProps = {\n msg: \"\",\n className: \"\",\n variant: \"error\",\n}\n\nInputMessage.propTypes = {\n msg: PropTypes.string,\n className: PropTypes.string,\n variant: PropTypes.oneOf([\"error\", \"warning\", \"success\"]),\n}\n\nexport default InputMessage\n\nconst StyledTitle = styled(Caption)`\n padding-left: 8px;\n`\n\nconst messageVariantCSS = ({ variant }) => css`\n background-color: ${variant.background};\n svg {\n path {\n fill: ${variant.color};\n }\n }\n .KUI-InputMessage_title {\n color: ${variant.color};\n }\n`\n\nconst StyledMessage = styled.div`\n z-index: 2;\n position: absolute;\n left: 0px;\n bottom: 0;\n padding: 8px 15px;\n width: 100%;\n box-sizing: border-box;\n border-radius: 0 0 8px 8px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-shadow: 0px 0px 1px rgba(10, 31, 68, 0.08),\n 0px 3px 4px rgba(10, 31, 68, 0.1);\n ${messageVariantCSS};\n`\n\nconst StyledIconWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`\n","import React from \"react\"\r\n\r\nconst TextareaGrabIcon = (props) => (\r\n <svg\r\n width=\"9\"\r\n height=\"8\"\r\n viewBox=\"0 0 9 8\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M0.21967 7.80474C0.512563 8.06509 0.987437 8.06509 1.28033 7.80474L8.78033 1.13807C9.07322 0.877722 9.07322 0.455612 8.78033 0.195262C8.48744 -0.0650874 8.01256 -0.0650874 7.71967 0.195262L0.21967 6.86193C-0.0732233 7.12228 -0.0732233 7.54439 0.21967 7.80474ZM3.96957 7.80441C4.26246 8.06476 4.73734 8.06476 5.03023 7.80441L8.78021 4.47108C9.0731 4.21073 9.0731 3.78862 8.78021 3.52827C8.48732 3.26792 8.01245 3.26792 7.71956 3.52827L3.96957 6.8616C3.67668 7.12195 3.67668 7.54406 3.96957 7.80441Z\"\r\n fill=\"#EAECEF\"\r\n />\r\n </svg>\r\n)\r\n\r\nexport default TextareaGrabIcon\r\n","import React, { forwardRef, useEffect, useRef, useState } from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport Caption from \"../Caption\"\nimport InputMessage from \"../InputMessage\"\nimport TextareaGrabIcon from \"../../icons/TextareaGrabIcon\"\nimport { theme } from \"../../theme\"\n\nconst { palette } = theme\n\nconst Input = forwardRef((props, ref) => {\n const {\n isTextArea,\n inputRef: inputRefProp,\n className,\n inputStyles,\n labelStyles,\n label,\n startIcon,\n endIcon,\n messageClassName,\n labelInlineStyles,\n message,\n messageVariant,\n value: inputValue,\n type,\n rows,\n placeholder,\n ...inputProps\n } = props\n const [isFilled, setIsFilled] = useState(false)\n const [textAreaHeight, setTextAreaHeight] = useState(0)\n const inputRef = useRef(null)\n const isInvalid = !!message && messageVariant !== \"success\"\n\n const forwardedRef = (elem) => {\n if (inputRefProp) {\n inputRefProp.current = elem\n }\n if (ref) {\n if (typeof ref === \"function\") {\n ref(elem)\n } else {\n ref.current = elem\n }\n }\n inputRef.current = elem\n }\n\n const autoHeight = () => {\n if (isTextArea) {\n const target = inputRef.current\n if (target.scrollHeight > target.clientHeight) {\n target.style.height = \"5px\"\n target.style.height = `${target.scrollHeight}px`\n }\n }\n }\n\n useEffect(() => {\n if (inputRef.current?.value) {\n setIsFilled(true)\n } else {\n setIsFilled(false)\n }\n }, [inputRef])\n\n useEffect(() => {\n if (!inputValue) {\n setIsFilled(false)\n } else {\n setIsFilled(true)\n }\n autoHeight()\n }, [inputValue])\n\n const handleChange = (e) => {\n if (e.target.value) {\n setIsFilled(true)\n } else {\n setIsFilled(false)\n }\n if (inputProps.onInput) {\n inputProps.onInput(e)\n }\n\n autoHeight()\n }\n\n const commonProps = {\n ref: forwardedRef,\n value: inputValue,\n onInput: handleChange,\n withMessage: !!message,\n messageVariant: messageVariant || \"error\",\n withLabel: !!label,\n placeholder,\n ...inputProps,\n }\n\n return (\n <StyledContainer\n className={classNames(\n \"KUI-Input_container\",\n !isTextArea && \"KUI-Input_InputContainer\",\n className\n )}\n >\n {startIcon && startIcon}\n {isTextArea ? (\n <StyledTextarea\n rows={rows}\n className={classNames(\n \"KUI-Input\",\n \"KUI-Textarea\",\n inputStyles,\n isInvalid && \"KUI-Input_invalid\"\n )}\n {...commonProps}\n />\n ) : (\n <StyledInput\n type={type}\n className={classNames(\n \"KUI-Input\",\n inputStyles,\n isInvalid && \"KUI-Input_invalid\"\n )}\n {...commonProps}\n />\n )}\n <StyledInputLabel\n size=\"s\"\n color=\"fiftyP\"\n active={isFilled || placeholder}\n className={classNames(\n \"KUI-Input_label\",\n (isFilled || placeholder) && \"KUI-Input_label-active\",\n labelStyles\n )}\n style={labelInlineStyles}\n >\n {label}\n </StyledInputLabel>\n {isTextArea && <StyledTextareaIcon className=\"KUI-Textarea_icon\" />}\n {endIcon && endIcon}\n {!!message && (\n <InputMessage\n variant={messageVariant || \"error\"}\n msg={message}\n className={messageClassName}\n />\n )}\n </StyledContainer>\n )\n})\n\nInput.defaultProps = {\n disabled: false,\n isTextArea: false,\n label: \"\",\n rows: 3,\n type: \"text\",\n}\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n isTextArea: PropTypes.bool,\n label: PropTypes.string,\n message: PropTypes.string,\n rows: PropTypes.number,\n type: PropTypes.oneOf([\n \"text\",\n \"number\",\n \"password\",\n \"phone\",\n \"email\",\n \"phone\",\n ]),\n}\n\nInput.displayName = \"Input\"\n\nexport default Input\n\nconst StyledContainer = styled.div`\n position: relative;\n &.KUI-Input_InputContainer {\n height: 56px;\n }\n`\n\nconst StyledTextareaIcon = styled(TextareaGrabIcon)`\n display: block;\n width: 9px;\n height: 8px;\n position: absolute;\n right: 4px;\n bottom: 8px;\n pointer-events: none;\n cursor: none;\n`\n\nconst labelActiveCSS = css`\n font-size: 12px;\n top: 6px;\n & + div.KUI-InputAdornment_corner-label p {\n opacity: 1;\n }\n`\n\nconst StyledInputLabel = styled(Caption)`\n transition: top ease-out 0.2s, font-size ease-out 0.2s;\n user-select: none;\n pointer-events: none;\n position: absolute;\n top: 19px;\n left: 16px;\n background: white;\n z-index: 1;\n ${({ active }) => active && labelActiveCSS};\n`\n\nconst inputStates = {\n error: palette.red.fiftyP,\n warning: palette.purple.seventy,\n success: palette.green.fiftyP,\n}\n\nconst inputStateCSS = (messageVariant) => css`\n border-radius: 8px 8px 0px 0px;\n border-color: ${inputStates[messageVariant]} !important;\n color: ${inputStates[messageVariant]};\n`\n\nconst inputCSS = ({ withMessage, messageVariant, withLabel }) => css`\n box-sizing: border-box;\n border: 1.5px solid ${palette.grey.fifteenB};\n border-radius: 8px;\n background-color: ${palette.grey.zero};\n caret-color: ${palette.brand.main};\n color: ${palette.grey.seventy};\n font-weight: 500;\n padding: ${withLabel ? \"27px 8px 6px 17px\" : \"16px 8px 12px 17px\"};\n font-family: \"Inter\", sans-serif;\n -moz-appearance: textfield;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n &:-webkit-autofill {\n box-shadow: inset 0 0 0 1000px #fff;\n }\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n &:focus {\n outline: none;\n border-color: ${palette.brand.main};\n & + .KUI-Input_label {\n ${labelActiveCSS}\n }\n }\n ${withMessage && inputStateCSS(messageVariant)};\n &:disabled {\n background-color: ${palette.background.light1};\n }\n`\n\nconst StyledInput = styled.input`\n height: 64px;\n font-size: 16px;\n transform: scale(calc(14 / 16));\n transform-origin: left top;\n width: calc(100% * (16 / 14));\n margin-right: -14%;\n ${inputCSS};\n`\n\nconst StyledTextarea = styled.textarea`\n resize: vertical;\n max-height: 168px;\n min-height: 64px;\n height: auto;\n width: 100%;\n font-size: 14px;\n ::-webkit-scrollbar {\n width: 0;\n }\n ::-webkit-resizer,\n ::-webkit-scrollbar-button,\n ::-webkit-scrollbar-corner {\n display: none;\n }\n ${inputCSS};\n`\n","import React, { forwardRef, useEffect, useRef, useState } from \"react\"\nimport classNames from \"classnames\"\nimport PropTypes from \"prop-types\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport Input from \"../Input\"\nimport Caption from \"../Caption\"\n\nconst InputWithAdornments = forwardRef((props, ref) => {\n const { cornerLabel, startIcon, endIcon, ...inputProps } = props\n\n const startIconRef = useRef(null)\n const endIconRef = useRef(null)\n const [startIconWidth, setStartIconWidth] = useState(0)\n const [endIconWidth, setEndIconWidth] = useState(0)\n\n const inputStyle = {\n paddingLeft: startIconWidth > 0 ? (startIconWidth + 20) * (16 / 14) : 16,\n paddingRight: endIconWidth > 0 ? endIconWidth + 24 : 8,\n }\n\n const labelStyle = {\n left: startIconWidth > 0 ? startIconWidth + 22 : 16,\n }\n\n useEffect(() => {\n setStartIconWidth(startIconRef?.current?.clientWidth)\n }, [startIconRef?.current?.clientWidth])\n\n useEffect(() => {\n setEndIconWidth(endIconRef?.current?.clientWidth)\n }, [endIconRef?.current?.clientWidth])\n\n return (\n <Input\n ref={ref}\n startIcon={\n startIcon && (\n <StyledStartIcon\n ref={startIconRef}\n className=\"KUI-InputAdornment_start-icon\"\n >\n {startIcon}\n </StyledStartIcon>\n )\n }\n endIcon={\n (endIcon || cornerLabel) && (\n <StyledEndIcon\n ref={endIconRef}\n isCornerLabel={!!cornerLabel}\n className={classNames(\n \"KUI-InputAdornment_end-icon\",\n cornerLabel && \"KUI-InputAdornment_corner-label\"\n )}\n >\n {cornerLabel ? (\n <StyledCornerLabel size=\"s\" weight={500} color=\"fiftyP\">\n {cornerLabel}\n </StyledCornerLabel>\n ) : (\n endIcon\n )}\n </StyledEndIcon>\n )\n }\n style={inputStyle}\n labelInlineStyles={labelStyle}\n {...inputProps}\n />\n )\n})\n\nInputWithAdornments.defaultProps = {\n cornerLabel: null,\n startIcon: null,\n endIcon: null,\n}\n\nInputWithAdornments.propTypes = {\n label: PropTypes.string,\n errorMessage: PropTypes.string,\n cornerLabel: PropTypes.string,\n disabled: PropTypes.bool,\n startIcon: PropTypes.element,\n endIcon: PropTypes.element,\n type: PropTypes.oneOf([\"text\", \"number\", \"password\"]),\n}\n\nInputWithAdornments.displayName = \"InputWithAdornments\"\n\nexport default InputWithAdornments\n\nconst cornerLabelCSS = css`\n align-items: flex-end;\n bottom: 12px;\n right: 12px;\n`\n\nconst StyledIcon = styled.div`\n position: absolute;\n top: 8px;\n bottom: 8px;\n display: flex;\n align-items: center;\n z-index: 1;\n`\n\nconst StyledStartIcon = styled(StyledIcon)`\n left: 8px;\n`\n\nconst StyledEndIcon = styled(StyledIcon)`\n right: 16px;\n z-index: 0;\n ${({ isCornerLabel }) => isCornerLabel && cornerLabelCSS};\n`\n\nconst StyledCornerLabel = styled(Caption)`\n transition: all ease-out 0.3s;\n opacity: 0;\n`\n","\"use strict\";function _interopDefault(e){return e&&\"object\"==typeof e&&\"default\"in e?e[\"default\"]:e}var React=_interopDefault(require(\"react\")),reactDom=require(\"react-dom\");function _defaults2(e,t){for(var n=Object.getOwnPropertyNames(t),a=0;a<n.length;a++){var i=n[a],r=Object.getOwnPropertyDescriptor(t,i);r&&r.configurable&&e[i]===undefined&&Object.defineProperty(e,i,r)}return e}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),_defaults2(e.prototype.constructor=e,t)}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],0<=t.indexOf(n)||(i[n]=e[n]);return i}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}var invariant=function(e,t,n,a,i,r,o,s){if(!e){var l;if(t===undefined)l=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var u=[n,a,i,r,o,s],c=0;(l=new Error(t.replace(/%s/g,function(){return u[c++]}))).name=\"Invariant Violation\"}throw l.framesToPop=1,l}},invariant_1=invariant;function setInputSelection(e,t,n){if(\"selectionStart\"in e&&\"selectionEnd\"in e)e.selectionStart=t,e.selectionEnd=n;else{var a=e.createTextRange();a.collapse(!0),a.moveStart(\"character\",t),a.moveEnd(\"character\",n-t),a.select()}}function getInputSelection(e){var t=0,n=0;if(\"selectionStart\"in e&&\"selectionEnd\"in e)t=e.selectionStart,n=e.selectionEnd;else{var a=document.selection.createRange();a.parentElement()===e&&(t=-a.moveStart(\"character\",-e.value.length),n=-a.moveEnd(\"character\",-e.value.length))}return{start:t,end:n,length:n-t}}var defaultFormatChars={9:\"[0-9]\",a:\"[A-Za-z]\",\"*\":\"[A-Za-z0-9]\"},defaultMaskChar=\"_\";function parseMask(e,t,n){var a=\"\",i=\"\",r=null,o=[];if(t===undefined&&(t=defaultMaskChar),null==n&&(n=defaultFormatChars),!e||\"string\"!=typeof e)return{maskChar:t,formatChars:n,mask:null,prefix:null,lastEditablePosition:null,permanents:[]};var s=!1;return e.split(\"\").forEach(function(e){s=!s&&\"\\\\\"===e||(s||!n[e]?(o.push(a.length),a.length===o.length-1&&(i+=e)):r=a.length+1,a+=e,!1)}),{maskChar:t,formatChars:n,prefix:i,mask:a,lastEditablePosition:r,permanents:o}}function isPermanentCharacter(e,t){return-1!==e.permanents.indexOf(t)}function isAllowedCharacter(e,t,n){var a=e.mask,i=e.formatChars;if(!n)return!1;if(isPermanentCharacter(e,t))return a[t]===n;var r=i[a[t]];return new RegExp(r).test(n)}function isEmpty(n,e){return e.split(\"\").every(function(e,t){return isPermanentCharacter(n,t)||!isAllowedCharacter(n,t,e)})}function getFilledLength(e,t){var n=e.maskChar,a=e.prefix;if(!n){for(;t.length>a.length&&isPermanentCharacter(e,t.length-1);)t=t.slice(0,t.length-1);return t.length}for(var i=a.length,r=t.length;r>=a.length;r--){var o=t[r];if(!isPermanentCharacter(e,r)&&isAllowedCharacter(e,r,o)){i=r+1;break}}return i}function isFilled(e,t){return getFilledLength(e,t)===e.mask.length}function formatValue(e,t){var n=e.maskChar,a=e.mask,i=e.prefix;if(!n){for((t=insertString(e,\"\",t,0)).length<i.length&&(t=i);t.length<a.length&&isPermanentCharacter(e,t.length);)t+=a[t.length];return t}if(t)return insertString(e,formatValue(e,\"\"),t,0);for(var r=0;r<a.length;r++)isPermanentCharacter(e,r)?t+=a[r]:t+=n;return t}function clearRange(n,e,a,t){var i=a+t,r=n.maskChar,o=n.mask,s=n.prefix,l=e.split(\"\");if(r)return l.map(function(e,t){return t<a||i<=t?e:isPermanentCharacter(n,t)?o[t]:r}).join(\"\");for(var u=i;u<l.length;u++)isPermanentCharacter(n,u)&&(l[u]=\"\");return a=Math.max(s.length,a),l.splice(a,i-a),e=l.join(\"\"),formatValue(n,e)}function insertString(r,o,e,s){var l=r.mask,u=r.maskChar,c=r.prefix,t=e.split(\"\"),h=isFilled(r,o);return!u&&s>o.length&&(o+=l.slice(o.length,s)),t.every(function(e){for(;i=e,isPermanentCharacter(r,a=s)&&i!==l[a];){if(s>=o.length&&(o+=l[s]),t=e,n=s,u&&isPermanentCharacter(r,n)&&t===u)return!0;if(++s>=l.length)return!1}var t,n,a,i;return!isAllowedCharacter(r,s,e)&&e!==u||(s<o.length?o=u||h||s<c.length?o.slice(0,s)+e+o.slice(s+1):(o=o.slice(0,s)+e+o.slice(s),formatValue(r,o)):u||(o+=e),++s<l.length)}),o}function getInsertStringLength(a,e,t,i){var r=a.mask,o=a.maskChar,n=t.split(\"\"),s=i;return n.every(function(e){for(;n=e,isPermanentCharacter(a,t=i)&&n!==r[t];)if(++i>=r.length)return!1;var t,n;return(isAllowedCharacter(a,i,e)||e===o)&&i++,i<r.length}),i-s}function getLeftEditablePosition(e,t){for(var n=t;0<=n;--n)if(!isPermanentCharacter(e,n))return n;return null}function getRightEditablePosition(e,t){for(var n=e.mask,a=t;a<n.length;++a)if(!isPermanentCharacter(e,a))return a;return null}function getStringValue(e){return e||0===e?e+\"\":\"\"}function processChange(e,t,n,a,i){var r=e.mask,o=e.prefix,s=e.lastEditablePosition,l=t,u=\"\",c=0,h=0,f=Math.min(i.start,n.start);if(n.end>i.start?h=(c=getInsertStringLength(e,a,u=l.slice(i.start,n.end),f))?i.length:0:l.length<a.length&&(h=a.length-l.length),l=a,h){if(1===h&&!i.length)f=i.start===n.start?getRightEditablePosition(e,n.start):getLeftEditablePosition(e,n.start);l=clearRange(e,l,f,h)}return l=insertString(e,l,u,f),(f+=c)>=r.length?f=r.length:f<o.length&&!c?f=o.length:f>=o.length&&f<s&&c&&(f=getRightEditablePosition(e,f)),u||(u=null),{value:l=formatValue(e,l),enteredString:u,selection:{start:f,end:f}}}function isWindowsPhoneBrowser(){var e=new RegExp(\"windows\",\"i\"),t=new RegExp(\"phone\",\"i\"),n=navigator.userAgent;return e.test(n)&&t.test(n)}function isFunction(e){return\"function\"==typeof e}function getRequestAnimationFrame(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame}function getCancelAnimationFrame(){return window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame}function defer(e){return(!!getCancelAnimationFrame()?getRequestAnimationFrame():function(){return setTimeout(e,1e3/60)})(e)}function cancelDefer(e){(getCancelAnimationFrame()||clearTimeout)(e)}var InputElement=function(c){function e(e){var f=c.call(this,e)||this;f.focused=!1,f.mounted=!1,f.previousSelection=null,f.selectionDeferId=null,f.saveSelectionLoopDeferId=null,f.saveSelectionLoop=function(){f.previousSelection=f.getSelection(),f.saveSelectionLoopDeferId=defer(f.saveSelectionLoop)},f.runSaveSelectionLoop=function(){null===f.saveSelectionLoopDeferId&&f.saveSelectionLoop()},f.stopSaveSelectionLoop=function(){null!==f.saveSelectionLoopDeferId&&(cancelDefer(f.saveSelectionLoopDeferId),f.saveSelectionLoopDeferId=null,f.previousSelection=null)},f.getInputDOMNode=function(){if(!f.mounted)return null;var e=reactDom.findDOMNode(_assertThisInitialized(_assertThisInitialized(f))),t=\"undefined\"!=typeof window&&e instanceof window.Element;if(e&&!t)return null;if(\"INPUT\"!==e.nodeName&&(e=e.querySelector(\"input\")),!e)throw new Error(\"react-input-mask: inputComponent doesn't contain input node\");return e},f.getInputValue=function(){var e=f.getInputDOMNode();return e?e.value:null},f.setInputValue=function(e){var t=f.getInputDOMNode();t&&(f.value=e,t.value=e)},f.setCursorToEnd=function(){var e=getFilledLength(f.maskOptions,f.value),t=getRightEditablePosition(f.maskOptions,e);null!==t&&f.setCursorPosition(t)},f.setSelection=function(e,t,n){void 0===n&&(n={});var a=f.getInputDOMNode(),i=f.isFocused();a&&i&&(n.deferred||setInputSelection(a,e,t),null!==f.selectionDeferId&&cancelDefer(f.selectionDeferId),f.selectionDeferId=defer(function(){f.selectionDeferId=null,setInputSelection(a,e,t)}),f.previousSelection={start:e,end:t,length:Math.abs(t-e)})},f.getSelection=function(){return getInputSelection(f.getInputDOMNode())},f.getCursorPosition=function(){return f.getSelection().start},f.setCursorPosition=function(e){f.setSelection(e,e)},f.isFocused=function(){return f.focused},f.getBeforeMaskedValueChangeConfig=function(){var e=f.maskOptions,t=e.mask,n=e.maskChar,a=e.permanents,i=e.formatChars;return{mask:t,maskChar:n,permanents:a,alwaysShowMask:!!f.props.alwaysShowMask,formatChars:i}},f.isInputAutofilled=function(e,t,n,a){var i=f.getInputDOMNode();try{if(i.matches(\":-webkit-autofill\"))return!0}catch(r){}return!f.focused||a.end<n.length&&t.end===e.length},f.onChange=function(e){var t=_assertThisInitialized(_assertThisInitialized(f)).beforePasteState,n=_assertThisInitialized(_assertThisInitialized(f)).previousSelection,a=f.props.beforeMaskedValueChange,i=f.getInputValue(),r=f.value,o=f.getSelection();f.isInputAutofilled(i,o,r,n)&&(r=formatValue(f.maskOptions,\"\"),n={start:0,end:0,length:0}),t&&(n=t.selection,r=t.value,o={start:n.start+i.length,end:n.start+i.length,length:0},i=r.slice(0,n.start)+i+r.slice(n.end),f.beforePasteState=null);var s=processChange(f.maskOptions,i,o,r,n),l=s.enteredString,u=s.selection,c=s.value;if(isFunction(a)){var h=a({value:c,selection:u},{value:r,selection:n},l,f.getBeforeMaskedValueChangeConfig());c=h.value,u=h.selection}f.setInputValue(c),isFunction(f.props.onChange)&&f.props.onChange(e),f.isWindowsPhoneBrowser?f.setSelection(u.start,u.end,{deferred:!0}):f.setSelection(u.start,u.end)},f.onFocus=function(e){var t=f.props.beforeMaskedValueChange,n=f.maskOptions,a=n.mask,i=n.prefix;if(f.focused=!0,f.mounted=!0,a){if(f.value)getFilledLength(f.maskOptions,f.value)<f.maskOptions.mask.length&&f.setCursorToEnd();else{var r=formatValue(f.maskOptions,i),o=formatValue(f.maskOptions,r),s=getFilledLength(f.maskOptions,o),l=getRightEditablePosition(f.maskOptions,s),u={start:l,end:l};if(isFunction(t)){var c=t({value:o,selection:u},{value:f.value,selection:null},null,f.getBeforeMaskedValueChangeConfig());o=c.value,u=c.selection}var h=o!==f.getInputValue();h&&f.setInputValue(o),h&&isFunction(f.props.onChange)&&f.props.onChange(e),f.setSelection(u.start,u.end)}f.runSaveSelectionLoop()}isFunction(f.props.onFocus)&&f.props.onFocus(e)},f.onBlur=function(e){var t=f.props.beforeMaskedValueChange,n=f.maskOptions.mask;if(f.stopSaveSelectionLoop(),f.focused=!1,n&&!f.props.alwaysShowMask&&isEmpty(f.maskOptions,f.value)){var a=\"\";if(isFunction(t))a=t({value:a,selection:null},{value:f.value,selection:f.previousSelection},null,f.getBeforeMaskedValueChangeConfig()).value;var i=a!==f.getInputValue();i&&f.setInputValue(a),i&&isFunction(f.props.onChange)&&f.props.onChange(e)}isFunction(f.props.onBlur)&&f.props.onBlur(e)},f.onMouseDown=function(e){if(!f.focused&&document.addEventListener){f.mouseDownX=e.clientX,f.mouseDownY=e.clientY,f.mouseDownTime=(new Date).getTime();var r=function r(e){if(document.removeEventListener(\"mouseup\",r),f.focused){var t=Math.abs(e.clientX-f.mouseDownX),n=Math.abs(e.clientY-f.mouseDownY),a=Math.max(t,n),i=(new Date).getTime()-f.mouseDownTime;(a<=10&&i<=200||a<=5&&i<=300)&&f.setCursorToEnd()}};document.addEventListener(\"mouseup\",r)}isFunction(f.props.onMouseDown)&&f.props.onMouseDown(e)},f.onPaste=function(e){isFunction(f.props.onPaste)&&f.props.onPaste(e),e.defaultPrevented||(f.beforePasteState={value:f.getInputValue(),selection:f.getSelection()},f.setInputValue(\"\"))},f.handleRef=function(e){null==f.props.children&&isFunction(f.props.inputRef)&&f.props.inputRef(e)};var t=e.mask,n=e.maskChar,a=e.formatChars,i=e.alwaysShowMask,r=e.beforeMaskedValueChange,o=e.defaultValue,s=e.value;f.maskOptions=parseMask(t,n,a),null==o&&(o=\"\"),null==s&&(s=o);var l=getStringValue(s);if(f.maskOptions.mask&&(i||l)&&(l=formatValue(f.maskOptions,l),isFunction(r))){var u=e.value;null==e.value&&(u=o),l=r({value:l,selection:null},{value:u=getStringValue(u),selection:null},null,f.getBeforeMaskedValueChangeConfig()).value}return f.value=l,f}_inheritsLoose(e,c);var t=e.prototype;return t.componentDidMount=function(){this.mounted=!0,this.getInputDOMNode()&&(this.isWindowsPhoneBrowser=isWindowsPhoneBrowser(),this.maskOptions.mask&&this.getInputValue()!==this.value&&this.setInputValue(this.value))},t.componentDidUpdate=function(){var e=this.previousSelection,t=this.props,n=t.beforeMaskedValueChange,a=t.alwaysShowMask,i=t.mask,r=t.maskChar,o=t.formatChars,s=this.maskOptions,l=a||this.isFocused(),u=null!=this.props.value,c=u?getStringValue(this.props.value):this.value,h=e?e.start:null;if(this.maskOptions=parseMask(i,r,o),this.maskOptions.mask){!s.mask&&this.isFocused()&&this.runSaveSelectionLoop();var f=this.maskOptions.mask&&this.maskOptions.mask!==s.mask;if(s.mask||u||(c=this.getInputValue()),(f||this.maskOptions.mask&&(c||l))&&(c=formatValue(this.maskOptions,c)),f){var p=getFilledLength(this.maskOptions,c);(null===h||p<h)&&(h=isFilled(this.maskOptions,c)?p:getRightEditablePosition(this.maskOptions,p))}!this.maskOptions.mask||!isEmpty(this.maskOptions,c)||l||u&&this.props.value||(c=\"\");var d={start:h,end:h};if(isFunction(n)){var m=n({value:c,selection:d},{value:this.value,selection:this.previousSelection},null,this.getBeforeMaskedValueChangeConfig());c=m.value,d=m.selection}this.value=c;var g=this.getInputValue()!==this.value;g?(this.setInputValue(this.value),this.forceUpdate()):f&&this.forceUpdate();var v=!1;null!=d.start&&null!=d.end&&(v=!e||e.start!==d.start||e.end!==d.end),(v||g)&&this.setSelection(d.start,d.end)}else s.mask&&(this.stopSaveSelectionLoop(),this.forceUpdate())},t.componentWillUnmount=function(){this.mounted=!1,null!==this.selectionDeferId&&cancelDefer(this.selectionDeferId),this.stopSaveSelectionLoop()},t.render=function(){var t,e=this.props,n=(e.mask,e.alwaysShowMask,e.maskChar,e.formatChars,e.inputRef,e.beforeMaskedValueChange,e.children),a=_objectWithoutPropertiesLoose(e,[\"mask\",\"alwaysShowMask\",\"maskChar\",\"formatChars\",\"inputRef\",\"beforeMaskedValueChange\",\"children\"]);if(n){isFunction(n)||invariant_1(!1);var i=[\"onChange\",\"onPaste\",\"onMouseDown\",\"onFocus\",\"onBlur\",\"value\",\"disabled\",\"readOnly\"],r=_extends({},a);i.forEach(function(e){return delete r[e]}),t=n(r),i.filter(function(e){return null!=t.props[e]&&t.props[e]!==a[e]}).length&&invariant_1(!1)}else t=React.createElement(\"input\",_extends({ref:this.handleRef},a));var o={onFocus:this.onFocus,onBlur:this.onBlur};return this.maskOptions.mask&&(a.disabled||a.readOnly||(o.onChange=this.onChange,o.onPaste=this.onPaste,o.onMouseDown=this.onMouseDown),null!=a.value&&(o.value=this.value)),t=React.cloneElement(t,o)},e}(React.Component);module.exports=InputElement;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar NODE_ENV = process.env.NODE_ENV;\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = _interopDefault(require('react'));\nvar reactDom = require('react-dom');\nvar invariant = _interopDefault(require('invariant'));\nvar warning = _interopDefault(require('warning'));\n\nfunction _defaults2(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _defaults2(subClass, superClass);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction setInputSelection(input, start, end) {\n if ('selectionStart' in input && 'selectionEnd' in input) {\n input.selectionStart = start;\n input.selectionEnd = end;\n } else {\n var range = input.createTextRange();\n range.collapse(true);\n range.moveStart('character', start);\n range.moveEnd('character', end - start);\n range.select();\n }\n}\nfunction getInputSelection(input) {\n var start = 0;\n var end = 0;\n\n if ('selectionStart' in input && 'selectionEnd' in input) {\n start = input.selectionStart;\n end = input.selectionEnd;\n } else {\n var range = document.selection.createRange();\n\n if (range.parentElement() === input) {\n start = -range.moveStart('character', -input.value.length);\n end = -range.moveEnd('character', -input.value.length);\n }\n }\n\n return {\n start: start,\n end: end,\n length: end - start\n };\n}\n\nvar defaultFormatChars = {\n '9': '[0-9]',\n 'a': '[A-Za-z]',\n '*': '[A-Za-z0-9]'\n};\nvar defaultMaskChar = '_';\n\nfunction parseMask (mask, maskChar, formatChars) {\n var parsedMaskString = '';\n var prefix = '';\n var lastEditablePosition = null;\n var permanents = [];\n\n if (maskChar === undefined) {\n maskChar = defaultMaskChar;\n }\n\n if (formatChars == null) {\n formatChars = defaultFormatChars;\n }\n\n if (!mask || typeof mask !== 'string') {\n return {\n maskChar: maskChar,\n formatChars: formatChars,\n mask: null,\n prefix: null,\n lastEditablePosition: null,\n permanents: []\n };\n }\n\n var isPermanent = false;\n mask.split('').forEach(function (character) {\n if (!isPermanent && character === '\\\\') {\n isPermanent = true;\n } else {\n if (isPermanent || !formatChars[character]) {\n permanents.push(parsedMaskString.length);\n\n if (parsedMaskString.length === permanents.length - 1) {\n prefix += character;\n }\n } else {\n lastEditablePosition = parsedMaskString.length + 1;\n }\n\n parsedMaskString += character;\n isPermanent = false;\n }\n });\n return {\n maskChar: maskChar,\n formatChars: formatChars,\n prefix: prefix,\n mask: parsedMaskString,\n lastEditablePosition: lastEditablePosition,\n permanents: permanents\n };\n}\n\n/* eslint no-use-before-define: [\"error\", { functions: false }] */\nfunction isPermanentCharacter(maskOptions, pos) {\n return maskOptions.permanents.indexOf(pos) !== -1;\n}\nfunction isAllowedCharacter(maskOptions, pos, character) {\n var mask = maskOptions.mask,\n formatChars = maskOptions.formatChars;\n\n if (!character) {\n return false;\n }\n\n if (isPermanentCharacter(maskOptions, pos)) {\n return mask[pos] === character;\n }\n\n var ruleChar = mask[pos];\n var charRule = formatChars[ruleChar];\n return new RegExp(charRule).test(character);\n}\nfunction isEmpty(maskOptions, value) {\n return value.split('').every(function (character, i) {\n return isPermanentCharacter(maskOptions, i) || !isAllowedCharacter(maskOptions, i, character);\n });\n}\nfunction getFilledLength(maskOptions, value) {\n var maskChar = maskOptions.maskChar,\n prefix = maskOptions.prefix;\n\n if (!maskChar) {\n while (value.length > prefix.length && isPermanentCharacter(maskOptions, value.length - 1)) {\n value = value.slice(0, value.length - 1);\n }\n\n return value.length;\n }\n\n var filledLength = prefix.length;\n\n for (var i = value.length; i >= prefix.length; i--) {\n var character = value[i];\n var isEnteredCharacter = !isPermanentCharacter(maskOptions, i) && isAllowedCharacter(maskOptions, i, character);\n\n if (isEnteredCharacter) {\n filledLength = i + 1;\n break;\n }\n }\n\n return filledLength;\n}\nfunction isFilled(maskOptions, value) {\n return getFilledLength(maskOptions, value) === maskOptions.mask.length;\n}\nfunction formatValue(maskOptions, value) {\n var maskChar = maskOptions.maskChar,\n mask = maskOptions.mask,\n prefix = maskOptions.prefix;\n\n if (!maskChar) {\n value = insertString(maskOptions, '', value, 0);\n\n if (value.length < prefix.length) {\n value = prefix;\n }\n\n while (value.length < mask.length && isPermanentCharacter(maskOptions, value.length)) {\n value += mask[value.length];\n }\n\n return value;\n }\n\n if (value) {\n var emptyValue = formatValue(maskOptions, '');\n return insertString(maskOptions, emptyValue, value, 0);\n }\n\n for (var i = 0; i < mask.length; i++) {\n if (isPermanentCharacter(maskOptions, i)) {\n value += mask[i];\n } else {\n value += maskChar;\n }\n }\n\n return value;\n}\nfunction clearRange(maskOptions, value, start, len) {\n var end = start + len;\n var maskChar = maskOptions.maskChar,\n mask = maskOptions.mask,\n prefix = maskOptions.prefix;\n var arrayValue = value.split('');\n\n if (!maskChar) {\n // remove any permanent chars after clear range, they will be added back by formatValue\n for (var i = end; i < arrayValue.length; i++) {\n if (isPermanentCharacter(maskOptions, i)) {\n arrayValue[i] = '';\n }\n }\n\n start = Math.max(prefix.length, start);\n arrayValue.splice(start, end - start);\n value = arrayValue.join('');\n return formatValue(maskOptions, value);\n }\n\n return arrayValue.map(function (character, i) {\n if (i < start || i >= end) {\n return character;\n }\n\n if (isPermanentCharacter(maskOptions, i)) {\n return mask[i];\n }\n\n return maskChar;\n }).join('');\n}\nfunction insertString(maskOptions, value, insertStr, insertPosition) {\n var mask = maskOptions.mask,\n maskChar = maskOptions.maskChar,\n prefix = maskOptions.prefix;\n var arrayInsertStr = insertStr.split('');\n var isInputFilled = isFilled(maskOptions, value);\n\n var isUsablePosition = function isUsablePosition(pos, character) {\n return !isPermanentCharacter(maskOptions, pos) || character === mask[pos];\n };\n\n var isUsableCharacter = function isUsableCharacter(character, pos) {\n return !maskChar || !isPermanentCharacter(maskOptions, pos) || character !== maskChar;\n };\n\n if (!maskChar && insertPosition > value.length) {\n value += mask.slice(value.length, insertPosition);\n }\n\n arrayInsertStr.every(function (insertCharacter) {\n while (!isUsablePosition(insertPosition, insertCharacter)) {\n if (insertPosition >= value.length) {\n value += mask[insertPosition];\n }\n\n if (!isUsableCharacter(insertCharacter, insertPosition)) {\n return true;\n }\n\n insertPosition++; // stop iteration if maximum value length reached\n\n if (insertPosition >= mask.length) {\n return false;\n }\n }\n\n var isAllowed = isAllowedCharacter(maskOptions, insertPosition, insertCharacter) || insertCharacter === maskChar;\n\n if (!isAllowed) {\n return true;\n }\n\n if (insertPosition < value.length) {\n if (maskChar || isInputFilled || insertPosition < prefix.length) {\n value = value.slice(0, insertPosition) + insertCharacter + value.slice(insertPosition + 1);\n } else {\n value = value.slice(0, insertPosition) + insertCharacter + value.slice(insertPosition);\n value = formatValue(maskOptions, value);\n }\n } else if (!maskChar) {\n value += insertCharacter;\n }\n\n insertPosition++; // stop iteration if maximum value length reached\n\n return insertPosition < mask.length;\n });\n return value;\n}\nfunction getInsertStringLength(maskOptions, value, insertStr, insertPosition) {\n var mask = maskOptions.mask,\n maskChar = maskOptions.maskChar;\n var arrayInsertStr = insertStr.split('');\n var initialInsertPosition = insertPosition;\n\n var isUsablePosition = function isUsablePosition(pos, character) {\n return !isPermanentCharacter(maskOptions, pos) || character === mask[pos];\n };\n\n arrayInsertStr.every(function (insertCharacter) {\n while (!isUsablePosition(insertPosition, insertCharacter)) {\n insertPosition++; // stop iteration if maximum value length reached\n\n if (insertPosition >= mask.length) {\n return false;\n }\n }\n\n var isAllowed = isAllowedCharacter(maskOptions, insertPosition, insertCharacter) || insertCharacter === maskChar;\n\n if (isAllowed) {\n insertPosition++;\n } // stop iteration if maximum value length reached\n\n\n return insertPosition < mask.length;\n });\n return insertPosition - initialInsertPosition;\n}\nfunction getLeftEditablePosition(maskOptions, pos) {\n for (var i = pos; i >= 0; --i) {\n if (!isPermanentCharacter(maskOptions, i)) {\n return i;\n }\n }\n\n return null;\n}\nfunction getRightEditablePosition(maskOptions, pos) {\n var mask = maskOptions.mask;\n\n for (var i = pos; i < mask.length; ++i) {\n if (!isPermanentCharacter(maskOptions, i)) {\n return i;\n }\n }\n\n return null;\n}\nfunction getStringValue(value) {\n return !value && value !== 0 ? '' : value + '';\n}\n\nfunction processChange(maskOptions, value, selection, previousValue, previousSelection) {\n var mask = maskOptions.mask,\n prefix = maskOptions.prefix,\n lastEditablePosition = maskOptions.lastEditablePosition;\n var newValue = value;\n var enteredString = '';\n var formattedEnteredStringLength = 0;\n var removedLength = 0;\n var cursorPosition = Math.min(previousSelection.start, selection.start);\n\n if (selection.end > previousSelection.start) {\n enteredString = newValue.slice(previousSelection.start, selection.end);\n formattedEnteredStringLength = getInsertStringLength(maskOptions, previousValue, enteredString, cursorPosition);\n\n if (!formattedEnteredStringLength) {\n removedLength = 0;\n } else {\n removedLength = previousSelection.length;\n }\n } else if (newValue.length < previousValue.length) {\n removedLength = previousValue.length - newValue.length;\n }\n\n newValue = previousValue;\n\n if (removedLength) {\n if (removedLength === 1 && !previousSelection.length) {\n var deleteFromRight = previousSelection.start === selection.start;\n cursorPosition = deleteFromRight ? getRightEditablePosition(maskOptions, selection.start) : getLeftEditablePosition(maskOptions, selection.start);\n }\n\n newValue = clearRange(maskOptions, newValue, cursorPosition, removedLength);\n }\n\n newValue = insertString(maskOptions, newValue, enteredString, cursorPosition);\n cursorPosition = cursorPosition + formattedEnteredStringLength;\n\n if (cursorPosition >= mask.length) {\n cursorPosition = mask.length;\n } else if (cursorPosition < prefix.length && !formattedEnteredStringLength) {\n cursorPosition = prefix.length;\n } else if (cursorPosition >= prefix.length && cursorPosition < lastEditablePosition && formattedEnteredStringLength) {\n cursorPosition = getRightEditablePosition(maskOptions, cursorPosition);\n }\n\n newValue = formatValue(maskOptions, newValue);\n\n if (!enteredString) {\n enteredString = null;\n }\n\n return {\n value: newValue,\n enteredString: enteredString,\n selection: {\n start: cursorPosition,\n end: cursorPosition\n }\n };\n}\n\nfunction isWindowsPhoneBrowser() {\n var windows = new RegExp('windows', 'i');\n var phone = new RegExp('phone', 'i');\n var ua = navigator.userAgent;\n return windows.test(ua) && phone.test(ua);\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction getRequestAnimationFrame() {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n}\n\nfunction getCancelAnimationFrame() {\n return window.cancelAnimationFrame || window.webkitCancelRequestAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame;\n}\n\nfunction defer(fn) {\n var hasCancelAnimationFrame = !!getCancelAnimationFrame();\n var deferFn;\n\n if (hasCancelAnimationFrame) {\n deferFn = getRequestAnimationFrame();\n } else {\n deferFn = function deferFn() {\n return setTimeout(fn, 1000 / 60);\n };\n }\n\n return deferFn(fn);\n}\nfunction cancelDefer(deferId) {\n var cancelFn = getCancelAnimationFrame() || clearTimeout;\n cancelFn(deferId);\n}\n\nvar InputElement =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InputElement, _React$Component);\n\n function InputElement(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.focused = false;\n _this.mounted = false;\n _this.previousSelection = null;\n _this.selectionDeferId = null;\n _this.saveSelectionLoopDeferId = null;\n\n _this.saveSelectionLoop = function () {\n _this.previousSelection = _this.getSelection();\n _this.saveSelectionLoopDeferId = defer(_this.saveSelectionLoop);\n };\n\n _this.runSaveSelectionLoop = function () {\n if (_this.saveSelectionLoopDeferId === null) {\n _this.saveSelectionLoop();\n }\n };\n\n _this.stopSaveSelectionLoop = function () {\n if (_this.saveSelectionLoopDeferId !== null) {\n cancelDefer(_this.saveSelectionLoopDeferId);\n _this.saveSelectionLoopDeferId = null;\n _this.previousSelection = null;\n }\n };\n\n _this.getInputDOMNode = function () {\n if (!_this.mounted) {\n return null;\n }\n\n var input = reactDom.findDOMNode(_assertThisInitialized(_assertThisInitialized(_this)));\n var isDOMNode = typeof window !== 'undefined' && input instanceof window.Element; // workaround for react-test-renderer\n // https://github.com/sanniassin/react-input-mask/issues/147\n\n if (input && !isDOMNode) {\n return null;\n }\n\n if (input.nodeName !== 'INPUT') {\n input = input.querySelector('input');\n }\n\n if (!input) {\n throw new Error('react-input-mask: inputComponent doesn\\'t contain input node');\n }\n\n return input;\n };\n\n _this.getInputValue = function () {\n var input = _this.getInputDOMNode();\n\n if (!input) {\n return null;\n }\n\n return input.value;\n };\n\n _this.setInputValue = function (value) {\n var input = _this.getInputDOMNode();\n\n if (!input) {\n return;\n }\n\n _this.value = value;\n input.value = value;\n };\n\n _this.setCursorToEnd = function () {\n var filledLength = getFilledLength(_this.maskOptions, _this.value);\n var pos = getRightEditablePosition(_this.maskOptions, filledLength);\n\n if (pos !== null) {\n _this.setCursorPosition(pos);\n }\n };\n\n _this.setSelection = function (start, end, options) {\n if (options === void 0) {\n options = {};\n }\n\n var input = _this.getInputDOMNode();\n\n var isFocused = _this.isFocused(); // don't change selection on unfocused input\n // because Safari sets focus on selection change (#154)\n\n\n if (!input || !isFocused) {\n return;\n }\n\n var _options = options,\n deferred = _options.deferred;\n\n if (!deferred) {\n setInputSelection(input, start, end);\n }\n\n if (_this.selectionDeferId !== null) {\n cancelDefer(_this.selectionDeferId);\n } // deferred selection update is required for pre-Lollipop Android browser,\n // but for consistent behavior we do it for all browsers\n\n\n _this.selectionDeferId = defer(function () {\n _this.selectionDeferId = null;\n setInputSelection(input, start, end);\n });\n _this.previousSelection = {\n start: start,\n end: end,\n length: Math.abs(end - start)\n };\n };\n\n _this.getSelection = function () {\n var input = _this.getInputDOMNode();\n\n return getInputSelection(input);\n };\n\n _this.getCursorPosition = function () {\n return _this.getSelection().start;\n };\n\n _this.setCursorPosition = function (pos) {\n _this.setSelection(pos, pos);\n };\n\n _this.isFocused = function () {\n return _this.focused;\n };\n\n _this.getBeforeMaskedValueChangeConfig = function () {\n var _this$maskOptions = _this.maskOptions,\n mask = _this$maskOptions.mask,\n maskChar = _this$maskOptions.maskChar,\n permanents = _this$maskOptions.permanents,\n formatChars = _this$maskOptions.formatChars;\n var alwaysShowMask = _this.props.alwaysShowMask;\n return {\n mask: mask,\n maskChar: maskChar,\n permanents: permanents,\n alwaysShowMask: !!alwaysShowMask,\n formatChars: formatChars\n };\n };\n\n _this.isInputAutofilled = function (value, selection, previousValue, previousSelection) {\n var input = _this.getInputDOMNode(); // only check for positive match because it will be false negative\n // in case of autofill simulation in tests\n //\n // input.matches throws an exception if selector isn't supported\n\n\n try {\n if (input.matches(':-webkit-autofill')) {\n return true;\n }\n } catch (e) {} // if input isn't focused then change event must have been triggered\n // either by autofill or event simulation in tests\n\n\n if (!_this.focused) {\n return true;\n } // if cursor has moved to the end while previousSelection forbids it\n // then it must be autofill\n\n\n return previousSelection.end < previousValue.length && selection.end === value.length;\n };\n\n _this.onChange = function (event) {\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n beforePasteState = _assertThisInitialize.beforePasteState;\n\n var _assertThisInitialize2 = _assertThisInitialized(_assertThisInitialized(_this)),\n previousSelection = _assertThisInitialize2.previousSelection;\n\n var beforeMaskedValueChange = _this.props.beforeMaskedValueChange;\n\n var value = _this.getInputValue();\n\n var previousValue = _this.value;\n\n var selection = _this.getSelection(); // autofill replaces entire value, ignore old one\n // https://github.com/sanniassin/react-input-mask/issues/113\n\n\n if (_this.isInputAutofilled(value, selection, previousValue, previousSelection)) {\n previousValue = formatValue(_this.maskOptions, '');\n previousSelection = {\n start: 0,\n end: 0,\n length: 0\n };\n } // set value and selection as if we haven't\n // cleared input in onPaste handler\n\n\n if (beforePasteState) {\n previousSelection = beforePasteState.selection;\n previousValue = beforePasteState.value;\n selection = {\n start: previousSelection.start + value.length,\n end: previousSelection.start + value.length,\n length: 0\n };\n value = previousValue.slice(0, previousSelection.start) + value + previousValue.slice(previousSelection.end);\n _this.beforePasteState = null;\n }\n\n var changedState = processChange(_this.maskOptions, value, selection, previousValue, previousSelection);\n var enteredString = changedState.enteredString;\n var newSelection = changedState.selection;\n var newValue = changedState.value;\n\n if (isFunction(beforeMaskedValueChange)) {\n var modifiedValue = beforeMaskedValueChange({\n value: newValue,\n selection: newSelection\n }, {\n value: previousValue,\n selection: previousSelection\n }, enteredString, _this.getBeforeMaskedValueChangeConfig());\n newValue = modifiedValue.value;\n newSelection = modifiedValue.selection;\n }\n\n _this.setInputValue(newValue);\n\n if (isFunction(_this.props.onChange)) {\n _this.props.onChange(event);\n }\n\n if (_this.isWindowsPhoneBrowser) {\n _this.setSelection(newSelection.start, newSelection.end, {\n deferred: true\n });\n } else {\n _this.setSelection(newSelection.start, newSelection.end);\n }\n };\n\n _this.onFocus = function (event) {\n var beforeMaskedValueChange = _this.props.beforeMaskedValueChange;\n var _this$maskOptions2 = _this.maskOptions,\n mask = _this$maskOptions2.mask,\n prefix = _this$maskOptions2.prefix;\n _this.focused = true; // if autoFocus is set, onFocus triggers before componentDidMount\n\n _this.mounted = true;\n\n if (mask) {\n if (!_this.value) {\n var emptyValue = formatValue(_this.maskOptions, prefix);\n var newValue = formatValue(_this.maskOptions, emptyValue);\n var filledLength = getFilledLength(_this.maskOptions, newValue);\n var cursorPosition = getRightEditablePosition(_this.maskOptions, filledLength);\n var newSelection = {\n start: cursorPosition,\n end: cursorPosition\n };\n\n if (isFunction(beforeMaskedValueChange)) {\n var modifiedValue = beforeMaskedValueChange({\n value: newValue,\n selection: newSelection\n }, {\n value: _this.value,\n selection: null\n }, null, _this.getBeforeMaskedValueChangeConfig());\n newValue = modifiedValue.value;\n newSelection = modifiedValue.selection;\n }\n\n var isInputValueChanged = newValue !== _this.getInputValue();\n\n if (isInputValueChanged) {\n _this.setInputValue(newValue);\n }\n\n if (isInputValueChanged && isFunction(_this.props.onChange)) {\n _this.props.onChange(event);\n }\n\n _this.setSelection(newSelection.start, newSelection.end);\n } else if (getFilledLength(_this.maskOptions, _this.value) < _this.maskOptions.mask.length) {\n _this.setCursorToEnd();\n }\n\n _this.runSaveSelectionLoop();\n }\n\n if (isFunction(_this.props.onFocus)) {\n _this.props.onFocus(event);\n }\n };\n\n _this.onBlur = function (event) {\n var beforeMaskedValueChange = _this.props.beforeMaskedValueChange;\n var mask = _this.maskOptions.mask;\n\n _this.stopSaveSelectionLoop();\n\n _this.focused = false;\n\n if (mask && !_this.props.alwaysShowMask && isEmpty(_this.maskOptions, _this.value)) {\n var newValue = '';\n\n if (isFunction(beforeMaskedValueChange)) {\n var modifiedValue = beforeMaskedValueChange({\n value: newValue,\n selection: null\n }, {\n value: _this.value,\n selection: _this.previousSelection\n }, null, _this.getBeforeMaskedValueChangeConfig());\n newValue = modifiedValue.value;\n }\n\n var isInputValueChanged = newValue !== _this.getInputValue();\n\n if (isInputValueChanged) {\n _this.setInputValue(newValue);\n }\n\n if (isInputValueChanged && isFunction(_this.props.onChange)) {\n _this.props.onChange(event);\n }\n }\n\n if (isFunction(_this.props.onBlur)) {\n _this.props.onBlur(event);\n }\n };\n\n _this.onMouseDown = function (event) {\n // tiny unintentional mouse movements can break cursor\n // position on focus, so we have to restore it in that case\n //\n // https://github.com/sanniassin/react-input-mask/issues/108\n if (!_this.focused && document.addEventListener) {\n _this.mouseDownX = event.clientX;\n _this.mouseDownY = event.clientY;\n _this.mouseDownTime = new Date().getTime();\n\n var mouseUpHandler = function mouseUpHandler(mouseUpEvent) {\n document.removeEventListener('mouseup', mouseUpHandler);\n\n if (!_this.focused) {\n return;\n }\n\n var deltaX = Math.abs(mouseUpEvent.clientX - _this.mouseDownX);\n var deltaY = Math.abs(mouseUpEvent.clientY - _this.mouseDownY);\n var axisDelta = Math.max(deltaX, deltaY);\n\n var timeDelta = new Date().getTime() - _this.mouseDownTime;\n\n if (axisDelta <= 10 && timeDelta <= 200 || axisDelta <= 5 && timeDelta <= 300) {\n _this.setCursorToEnd();\n }\n };\n\n document.addEventListener('mouseup', mouseUpHandler);\n }\n\n if (isFunction(_this.props.onMouseDown)) {\n _this.props.onMouseDown(event);\n }\n };\n\n _this.onPaste = function (event) {\n if (isFunction(_this.props.onPaste)) {\n _this.props.onPaste(event);\n } // event.clipboardData might not work in Android browser\n // cleaning input to get raw text inside onChange handler\n\n\n if (!event.defaultPrevented) {\n _this.beforePasteState = {\n value: _this.getInputValue(),\n selection: _this.getSelection()\n };\n\n _this.setInputValue('');\n }\n };\n\n _this.handleRef = function (ref) {\n if (_this.props.children == null && isFunction(_this.props.inputRef)) {\n _this.props.inputRef(ref);\n }\n };\n\n var _mask = props.mask,\n _maskChar = props.maskChar,\n _formatChars = props.formatChars,\n _alwaysShowMask = props.alwaysShowMask,\n _beforeMaskedValueChange = props.beforeMaskedValueChange;\n var defaultValue = props.defaultValue,\n _value = props.value;\n _this.maskOptions = parseMask(_mask, _maskChar, _formatChars);\n\n if (defaultValue == null) {\n defaultValue = '';\n }\n\n if (_value == null) {\n _value = defaultValue;\n }\n\n var _newValue = getStringValue(_value);\n\n if (_this.maskOptions.mask && (_alwaysShowMask || _newValue)) {\n _newValue = formatValue(_this.maskOptions, _newValue);\n\n if (isFunction(_beforeMaskedValueChange)) {\n var oldValue = props.value;\n\n if (props.value == null) {\n oldValue = defaultValue;\n }\n\n oldValue = getStringValue(oldValue);\n\n var modifiedValue = _beforeMaskedValueChange({\n value: _newValue,\n selection: null\n }, {\n value: oldValue,\n selection: null\n }, null, _this.getBeforeMaskedValueChangeConfig());\n\n _newValue = modifiedValue.value;\n }\n }\n\n _this.value = _newValue;\n return _this;\n }\n\n var _proto = InputElement.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // workaround for react-test-renderer\n // https://github.com/sanniassin/react-input-mask/issues/147\n\n if (!this.getInputDOMNode()) {\n return;\n }\n\n this.isWindowsPhoneBrowser = isWindowsPhoneBrowser();\n\n if (this.maskOptions.mask && this.getInputValue() !== this.value) {\n this.setInputValue(this.value);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var previousSelection = this.previousSelection;\n var _this$props = this.props,\n beforeMaskedValueChange = _this$props.beforeMaskedValueChange,\n alwaysShowMask = _this$props.alwaysShowMask,\n mask = _this$props.mask,\n maskChar = _this$props.maskChar,\n formatChars = _this$props.formatChars;\n var previousMaskOptions = this.maskOptions;\n var showEmpty = alwaysShowMask || this.isFocused();\n var hasValue = this.props.value != null;\n var newValue = hasValue ? getStringValue(this.props.value) : this.value;\n var cursorPosition = previousSelection ? previousSelection.start : null;\n this.maskOptions = parseMask(mask, maskChar, formatChars);\n\n if (!this.maskOptions.mask) {\n if (previousMaskOptions.mask) {\n this.stopSaveSelectionLoop(); // render depends on this.maskOptions and this.value,\n // call forceUpdate to keep it in sync\n\n this.forceUpdate();\n }\n\n return;\n } else if (!previousMaskOptions.mask && this.isFocused()) {\n this.runSaveSelectionLoop();\n }\n\n var isMaskChanged = this.maskOptions.mask && this.maskOptions.mask !== previousMaskOptions.mask;\n\n if (!previousMaskOptions.mask && !hasValue) {\n newValue = this.getInputValue();\n }\n\n if (isMaskChanged || this.maskOptions.mask && (newValue || showEmpty)) {\n newValue = formatValue(this.maskOptions, newValue);\n }\n\n if (isMaskChanged) {\n var filledLength = getFilledLength(this.maskOptions, newValue);\n\n if (cursorPosition === null || filledLength < cursorPosition) {\n if (isFilled(this.maskOptions, newValue)) {\n cursorPosition = filledLength;\n } else {\n cursorPosition = getRightEditablePosition(this.maskOptions, filledLength);\n }\n }\n }\n\n if (this.maskOptions.mask && isEmpty(this.maskOptions, newValue) && !showEmpty && (!hasValue || !this.props.value)) {\n newValue = '';\n }\n\n var newSelection = {\n start: cursorPosition,\n end: cursorPosition\n };\n\n if (isFunction(beforeMaskedValueChange)) {\n var modifiedValue = beforeMaskedValueChange({\n value: newValue,\n selection: newSelection\n }, {\n value: this.value,\n selection: this.previousSelection\n }, null, this.getBeforeMaskedValueChangeConfig());\n newValue = modifiedValue.value;\n newSelection = modifiedValue.selection;\n }\n\n this.value = newValue;\n var isValueChanged = this.getInputValue() !== this.value; // render depends on this.maskOptions and this.value,\n // call forceUpdate to keep it in sync\n\n if (isValueChanged) {\n this.setInputValue(this.value);\n this.forceUpdate();\n } else if (isMaskChanged) {\n this.forceUpdate();\n }\n\n var isSelectionChanged = false;\n\n if (newSelection.start != null && newSelection.end != null) {\n isSelectionChanged = !previousSelection || previousSelection.start !== newSelection.start || previousSelection.end !== newSelection.end;\n }\n\n if (isSelectionChanged || isValueChanged) {\n this.setSelection(newSelection.start, newSelection.end);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n\n if (this.selectionDeferId !== null) {\n cancelDefer(this.selectionDeferId);\n }\n\n this.stopSaveSelectionLoop();\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n mask = _this$props2.mask,\n alwaysShowMask = _this$props2.alwaysShowMask,\n maskChar = _this$props2.maskChar,\n formatChars = _this$props2.formatChars,\n inputRef = _this$props2.inputRef,\n beforeMaskedValueChange = _this$props2.beforeMaskedValueChange,\n children = _this$props2.children,\n restProps = _objectWithoutPropertiesLoose(_this$props2, [\"mask\", \"alwaysShowMask\", \"maskChar\", \"formatChars\", \"inputRef\", \"beforeMaskedValueChange\", \"children\"]);\n\n var inputElement;\n process.env.NODE_ENV !== \"production\" ? warning( // parse mask to test against actual mask prop as this.maskOptions\n // will be updated later in componentDidUpdate\n !restProps.maxLength || !parseMask(mask, maskChar, formatChars).mask, 'react-input-mask: maxLength property shouldn\\'t be passed to the masked input. It breaks masking and unnecessary because length is limited by the mask length.') : void 0;\n\n if (children) {\n !isFunction(children) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'react-input-mask: children must be a function') : invariant(false) : void 0;\n var controlledProps = ['onChange', 'onPaste', 'onMouseDown', 'onFocus', 'onBlur', 'value', 'disabled', 'readOnly'];\n\n var childrenProps = _extends({}, restProps);\n\n controlledProps.forEach(function (propId) {\n return delete childrenProps[propId];\n });\n inputElement = children(childrenProps);\n var conflictProps = controlledProps.filter(function (propId) {\n return inputElement.props[propId] != null && inputElement.props[propId] !== restProps[propId];\n });\n !!conflictProps.length ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"react-input-mask: the following props should be passed to the react-input-mask's component and should not be altered in children's function: \" + conflictProps.join(', ')) : invariant(false) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!inputRef, 'react-input-mask: inputRef is ignored when children is passed, attach ref to the children instead') : void 0;\n } else {\n inputElement = React.createElement(\"input\", _extends({\n ref: this.handleRef\n }, restProps));\n }\n\n var changedProps = {\n onFocus: this.onFocus,\n onBlur: this.onBlur\n };\n\n if (this.maskOptions.mask) {\n if (!restProps.disabled && !restProps.readOnly) {\n changedProps.onChange = this.onChange;\n changedProps.onPaste = this.onPaste;\n changedProps.onMouseDown = this.onMouseDown;\n }\n\n if (restProps.value != null) {\n changedProps.value = this.value;\n }\n }\n\n inputElement = React.cloneElement(inputElement, changedProps);\n return inputElement;\n };\n\n return InputElement;\n}(React.Component);\n\nmodule.exports = InputElement;\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./lib/react-input-mask.production.min.js');\n} else {\n module.exports = require('./lib/react-input-mask.development.js');\n}\n","import InputMask from \"react-input-mask\"\r\nimport React, { forwardRef, useEffect, useState } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport InputWithAdornments from \"../InputWithAdornments\"\r\n\r\nconst InputWithMask = forwardRef((props, ref) => {\r\n const { mask, value: valueProp, onChange, onBlur, disabled, ...other } = props\r\n const [value, setValue] = useState(valueProp)\r\n\r\n const handleChange = (e) => {\r\n if (e.target.value?.match(/[0-9]/)) {\r\n setValue(e.target.value)\r\n } else {\r\n setValue(\"\")\r\n }\r\n if (onChange) {\r\n onChange(e)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setValue(valueProp)\r\n }, [valueProp])\r\n\r\n return (\r\n <InputMask\r\n maskPlaceholder={null}\r\n mask={mask}\r\n alwaysShowMask={false}\r\n disabled={disabled}\r\n onChange={handleChange}\r\n onBlur={onBlur}\r\n value={value}\r\n >\r\n {() => (\r\n <InputWithAdornments\r\n disabled={disabled}\r\n value={value}\r\n ref={ref}\r\n {...other}\r\n />\r\n )}\r\n </InputMask>\r\n )\r\n})\r\n\r\nInputWithMask.displayName = \"InputWithMask\"\r\n\r\nInputWithMask.propTypes = {\r\n label: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n cornerLabel: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n startIcon: PropTypes.element,\r\n endIcon: PropTypes.element,\r\n mask: PropTypes.string,\r\n}\r\n\r\nexport default InputWithMask\r\n","import React, { useMemo } from \"react\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nfunction CountryItem({ item, selectCountryIndex }) {\r\n const countryIcon = useMemo(\r\n () =>\r\n item.nameCode\r\n .toUpperCase()\r\n .replace(/./g, (char) =>\r\n String.fromCodePoint(char.charCodeAt(0) + 127397)\r\n ),\r\n [item.nameCode]\r\n )\r\n\r\n const handleClick = () => {\r\n selectCountryIndex(item)\r\n }\r\n\r\n return (\r\n <StyledCountry className=\"KUI-Country\" onClick={handleClick}>\r\n <StyledTitle className=\"KUI-Country_title\">\r\n <StyledIcon className=\"KUI-Country_icon\">{countryIcon}</StyledIcon>\r\n <StyledCountryName className=\"KUI-Country_name\">\r\n {item.nameRus}\r\n </StyledCountryName>\r\n </StyledTitle>\r\n <div>\r\n <StyledCountryPhone className=\"KUI-Country_phone\">\r\n +{item.phoneCode}\r\n </StyledCountryPhone>\r\n </div>\r\n </StyledCountry>\r\n )\r\n}\r\n\r\nexport default CountryItem\r\n\r\nconst StyledCountry = styled.div`\r\n border-radius: 12px;\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 8px 11px;\r\n cursor: pointer;\r\n box-sizing: border-box;\r\n &:hover {\r\n background-color: ${palette.background.light2};\r\n }\r\n`\r\n\r\nconst StyledTitle = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`\r\n\r\nconst StyledIcon = styled.span`\r\n padding-bottom: 1px;\r\n width: 28px;\r\n`\r\n\r\nconst StyledCountryName = styled.p`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n margin: 0;\r\n padding-top: 3px;\r\n font-size: 14px;\r\n line-height: 18px;\r\n font-weight: 600;\r\n`\r\n\r\nconst StyledCountryPhone = styled.p`\r\n font-family: \"Inter\", sans-serif;\r\n letter-spacing: normal;\r\n margin: 0;\r\n font-size: 12px;\r\n line-height: 14px;\r\n font-weight: 500;\r\n color: ${palette.grey.fiftyP};\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst SearchIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M5.15016 0.333008C7.81034 0.333008 9.96683 2.4895 9.96683 5.14967C9.96683 6.27563 9.58049 7.31135 8.93313 8.13151L11.5009 10.699C11.7222 10.9203 11.7222 11.2791 11.5009 11.5004C11.2796 11.7217 10.9208 11.7217 10.6995 11.5004L8.132 8.93264C7.31184 9.58 6.27612 9.96634 5.15016 9.96634C2.48999 9.96634 0.333496 7.80985 0.333496 5.14967C0.333496 2.4895 2.48999 0.333008 5.15016 0.333008ZM5.15016 1.46634C3.11591 1.46634 1.46683 3.11543 1.46683 5.14967C1.46683 7.18392 3.11591 8.83301 5.15016 8.83301C7.18441 8.83301 8.8335 7.18392 8.8335 5.14967C8.8335 3.11543 7.18441 1.46634 5.15016 1.46634Z\"\r\n fill=\"#7F8285\"\r\n />\r\n </svg>\r\n)\r\n\r\nSearchIcon.defaultProps = {\r\n width: 12,\r\n height: 12,\r\n}\r\n\r\nSearchIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default SearchIcon\r\n","import React, { useEffect, useRef, useState } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport countries from \"../../../utils/countries.json\"\r\nimport CountryItem from \"./CountryItem\"\r\nimport SearchIcon from \"../../../icons/SearchIcon\"\r\nimport { theme } from \"../../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nfunction Dropdown({\r\n isOpen,\r\n selectCountryIndex,\r\n setIsOpenDropDown,\r\n buttonRef,\r\n}) {\r\n const [filteredCountries, setFilteredCountries] = useState(countries)\r\n const dropdownRef = useRef()\r\n\r\n const closePopUp = (e) => {\r\n if (dropdownRef.current && buttonRef.current) {\r\n if (\r\n !dropdownRef.current.contains(e.target) &&\r\n !buttonRef.current.contains(e.target)\r\n ) {\r\n setIsOpenDropDown(false)\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", closePopUp)\r\n return () => {\r\n document.removeEventListener(\"click\", closePopUp)\r\n }\r\n }, [])\r\n\r\n if (!isOpen) {\r\n return null\r\n }\r\n\r\n const filterCountries = (e) => {\r\n const query = e.target.value\r\n\r\n if (query.length > 0) {\r\n setFilteredCountries(\r\n countries.filter(\r\n (item) =>\r\n item.nameRus.toLowerCase().indexOf(query.toLowerCase()) !== -1\r\n )\r\n )\r\n } else {\r\n setFilteredCountries(countries)\r\n }\r\n }\r\n\r\n return (\r\n <StyledContainer\r\n isOpen={isOpen}\r\n className={classNames(\r\n \"KUI-DropdownContainer\",\r\n isOpen && \"KUI-Dropdown_open\"\r\n )}\r\n ref={dropdownRef}\r\n >\r\n <StyledSearchWrapper className=\"KUI-SearchWrapper\">\r\n <StyledSearch className=\"KUI-Search\">\r\n <StyledSearchInput\r\n type=\"text\"\r\n placeholder=\"Поиск...\"\r\n onChange={filterCountries}\r\n className=\"KUI-SearchInput\"\r\n />\r\n <span>\r\n <SearchIcon />\r\n </span>\r\n </StyledSearch>\r\n </StyledSearchWrapper>\r\n <StyledDropdown className=\"KUI-Dropdown\">\r\n {filteredCountries.map((item, key) => (\r\n <CountryItem\r\n key={key}\r\n item={item}\r\n selectCountryIndex={selectCountryIndex}\r\n />\r\n ))}\r\n </StyledDropdown>\r\n </StyledContainer>\r\n )\r\n}\r\n\r\nexport default Dropdown\r\n\r\nconst StyledContainer = styled.div`\r\n width: 100%;\r\n max-height: 275px;\r\n display: ${({ isOpen }) => (isOpen ? \"block\" : \"none\")};\r\n position: absolute;\r\n background-color: ${palette.grey.zero};\r\n z-index: 100;\r\n border: 1px solid ${palette.grey.fifteenB};\r\n top: 64px;\r\n box-shadow: ${theme.shadows.shadow4};\r\n border-radius: 8px;\r\n overflow: auto;\r\n -ms-overflow-style: none;\r\n scrollbar-width: none;\r\n overflow-y: scroll;\r\n user-select: none;\r\n &::-webkit-scrollbar {\r\n width: 0;\r\n }\r\n`\r\n\r\nconst StyledSearchWrapper = styled.div`\r\n padding: 8px;\r\n position: sticky;\r\n top: 0;\r\n background-color: ${palette.grey.zero};\r\n border-radius: 8px;\r\n`\r\n\r\nconst StyledSearch = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n height: 40px;\r\n background-color: ${palette.background.light2};\r\n padding: 0 12px;\r\n border-radius: 8px;\r\n`\r\n\r\nconst StyledSearchInput = styled.input`\r\n border: none;\r\n width: calc(100% - 18px);\r\n background-color: transparent;\r\n height: 100%;\r\n outline: none;\r\n`\r\n\r\nconst StyledDropdown = styled.div`\r\n width: 100%;\r\n padding: 0 8px;\r\n box-sizing: border-box;\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst HalfArrowIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M6.86193 0.195262L4 3.05719L1.13807 0.195262C0.877722 -0.0650874 0.455612 -0.0650874 0.195262 0.195262C-0.0650874 0.455612 -0.0650874 0.877722 0.195262 1.13807L3.5286 4.4714C3.78895 4.73175 4.21105 4.73175 4.4714 4.4714L7.80474 1.13807C8.06509 0.877722 8.06509 0.455612 7.80474 0.195262C7.54439 -0.0650874 7.12228 -0.0650874 6.86193 0.195262Z\"\r\n fill=\"#8A94A6\"\r\n />\r\n </svg>\r\n)\r\n\r\nHalfArrowIcon.defaultProps = {\r\n width: 8,\r\n height: 5,\r\n}\r\n\r\nHalfArrowIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default HalfArrowIcon\r\n","import React, { forwardRef, useRef, useState } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport InputWithMask from \"../InputWithMask\"\r\nimport countries from \"../../utils/countries.json\"\r\nimport Caption from \"../Caption\"\r\nimport Dropdown from \"./Dropdown\"\r\nimport HalfArrowIcon from \"../../icons/HalfArrowIcon\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nconst InputWithCountryDropdown = forwardRef(\r\n ({ onSelectCountry, hiddenInputProps, ...inputProps }, ref) => {\r\n const selectedCountryCode = hiddenInputProps?.value\r\n ? String(hiddenInputProps.value)\r\n : \"7\"\r\n const selectedCountryIndex = countries.findIndex(\r\n (country) => country.phoneCode === selectedCountryCode\r\n )\r\n const [selectedCountry, setSelectedCountry] = useState(\r\n selectedCountryIndex < 0 ? 168 : selectedCountryIndex\r\n )\r\n const [isOpenDropdown, setIsOpenDropDown] = useState(false)\r\n const buttonRef = useRef()\r\n\r\n const selectCountryIndex = (item) => {\r\n setSelectedCountry(\r\n countries.reduce(\r\n (acc, country, index) => (country.name === item.name ? index : acc),\r\n 0\r\n )\r\n )\r\n setIsOpenDropDown(false)\r\n if (onSelectCountry) {\r\n onSelectCountry(item)\r\n }\r\n }\r\n\r\n const handleClick = () => {\r\n setIsOpenDropDown(!isOpenDropdown)\r\n }\r\n\r\n return (\r\n <StyledDropdownWrapper className=\"KUI-InputDropdown_wrapper\">\r\n <InputWithMask\r\n ref={ref}\r\n label=\"Номер телефона\"\r\n mask={countries[selectedCountry].mask}\r\n startIcon={\r\n <StyledPhoneCodeButton\r\n type=\"button\"\r\n className=\"KUI-InputDropdown_button-phone-code\"\r\n onClick={handleClick}\r\n ref={buttonRef}\r\n >\r\n <Caption size=\"s\" weight={500}>\r\n +{countries[selectedCountry].phoneCode}\r\n </Caption>\r\n <StyledPhoneCodeIcon isReverse={isOpenDropdown}>\r\n <HalfArrowIcon />\r\n </StyledPhoneCodeIcon>\r\n </StyledPhoneCodeButton>\r\n }\r\n {...inputProps}\r\n />\r\n <Dropdown\r\n isOpen={isOpenDropdown}\r\n selectCountryIndex={selectCountryIndex}\r\n setIsOpenDropDown={setIsOpenDropDown}\r\n buttonRef={buttonRef}\r\n />\r\n <input\r\n style={{ display: \"none\" }}\r\n readOnly\r\n aria-label=\"phone_code\"\r\n {...hiddenInputProps}\r\n value={countries[selectedCountry].phoneCode}\r\n />\r\n </StyledDropdownWrapper>\r\n )\r\n }\r\n)\r\n\r\nInputWithCountryDropdown.displayName = \"InputWithCountryDropdown\"\r\n\r\nInputWithCountryDropdown.propTypes = {\r\n label: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n}\r\n\r\nexport default InputWithCountryDropdown\r\n\r\nconst StyledDropdownWrapper = styled.div`\r\n position: relative;\r\n`\r\n\r\nconst StyledPhoneCodeButton = styled.button`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 80px;\r\n height: 40px;\r\n box-sizing: border-box;\r\n background: ${palette.background.light2};\r\n border-radius: 8px;\r\n border: none;\r\n margin: 0;\r\n box-shadow: none;\r\n cursor: pointer;\r\n padding: 8px 14px 8px;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n user-select: none;\r\n`\r\n\r\nconst StyledPhoneCodeIcon = styled.span`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n svg {\r\n transition: all linear 0.2s;\r\n transform: ${({ isReverse }) => (isReverse ? \"rotate(180deg)\" : \"none\")};\r\n }\r\n`\r\n","import React, { forwardRef } from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport { theme } from \"../../theme\"\n\nconst palette = theme.palette\n\nconst Checkbox = forwardRef((props, ref) => {\n const { className, label, error, inputRef, ...checkboxProps } = props\n\n return (\n <StyledLabel className={classNames(\"KUI-Checkbox_label\", className)}>\n <StyledCheckbox\n ref={inputRef}\n type=\"checkbox\"\n className=\"KUI-Checkbox\"\n {...checkboxProps}\n />\n <StyledCustomCheckbox\n error={!!error}\n className={classNames(\n \"KUI-Checkbox_custom\",\n !!error && \"KUI-Checkbox_error\"\n )}\n />\n {!!label && (\n <StyledCheckboxLabel className=\"KUI-Label_checkbox\">\n {label}\n </StyledCheckboxLabel>\n )}\n </StyledLabel>\n )\n})\n\nCheckbox.defaultProps = {\n label: \"\",\n}\n\nCheckbox.propTypes = {\n label: PropTypes.any,\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n}\n\nCheckbox.displayName = \"Checkbox\"\n\nexport default Checkbox\n\nconst errorCSS = ({ error }) =>\n error &&\n css`\n border-color: ${palette.red.fiftyP};\n `\n\nconst StyledCustomCheckbox = styled.span`\n border-radius: 6px;\n padding: 1px;\n width: 20px;\n height: 20px;\n box-sizing: border-box;\n border: 1px solid ${palette.grey.fifteenB};\n transition: all linear 0.3s;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n ${errorCSS};\n &:before {\n content: \"\";\n display: block;\n width: 16px;\n height: 16px;\n border-radius: 4px;\n background-color: ${palette.grey.zero};\n transition: all linear 0.2s;\n }\n`\n\nconst StyledCheckbox = styled.input`\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n width: 16px;\n height: 16px;\n cursor: pointer;\n &:checked + .KUI-Checkbox_custom:before {\n background-color: ${palette.brand.main};\n background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z\" fill=\"%23fff\"/%3E%3C/svg%3E');\n }\n &:disabled + .KUI-Checkbox_custom {\n background-color: ${palette.background.light2};\n border-color: ${palette.background.light2};\n &:before {\n background-color: ${palette.background.light2};\n }\n }\n &:disabled:checked + .KUI-Checkbox_custom:before {\n background-color: ${palette.grey.fifteenB};\n }\n`\n\nconst StyledLabel = styled.label`\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n position: relative;\n &:hover {\n .KUI-Checkbox:not(:disabled):not(:checked) + .KUI-Checkbox_custom {\n border-color: ${palette.brand.main};\n }\n .KUI-Checkbox:not(:disabled):checked + .KUI-Checkbox_custom {\n border-color: ${palette.brand.light};\n }\n }\n`\n\nconst StyledCheckboxLabel = styled.span`\n margin-left: 10px;\n`\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst CloseIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox=\"0 0 26 26\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M6.93909 6.93909C7.27382 6.60435 7.81654 6.60435 8.15127 6.93909L13 11.7878L17.8487 6.93909C18.1835 6.60435 18.7262 6.60435 19.0609 6.93909C19.3957 7.27382 19.3957 7.81653 19.0609 8.15127L14.2122 13L19.0609 17.8487C19.3957 18.1835 19.3957 18.7262 19.0609 19.0609C18.7262 19.3956 18.1835 19.3956 17.8487 19.0609L13 14.2122L8.15127 19.0609C7.81654 19.3956 7.27382 19.3956 6.93909 19.0609C6.60435 18.7262 6.60435 18.1835 6.93909 17.8487L11.7878 13L6.93909 8.15127C6.60435 7.81653 6.60435 7.27382 6.93909 6.93909Z\"\r\n fill=\"#7F8285\"\r\n />\r\n </svg>\r\n)\r\n\r\nCloseIcon.defaultProps = {\r\n width: 26,\r\n height: 26,\r\n}\r\n\r\nCloseIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default CloseIcon\r\n","import React, { useEffect, useRef } from \"react\"\nimport classNames from \"classnames\"\nimport PropTypes from \"prop-types\"\nimport styled from \"@emotion/styled\"\nimport { css, Global } from \"@emotion/react\"\nimport { createPortal } from \"react-dom\"\nimport Heading from \"../Heading\"\nimport CloseIcon from \"../../icons/CloseIcon\"\nimport { theme } from \"../../theme\"\nimport Caption from \"../Caption\"\nimport Button from \"../Button\"\n\nconst { breakpoints, palette } = theme\n\nfunction Modal(props) {\n const {\n isOpen,\n handleClose,\n isScrollable,\n title,\n description,\n children,\n isHasHeader,\n className,\n size,\n icon,\n ...otherProps\n } = props\n const modalRef = useRef(null)\n\n useEffect(() => {\n if (isOpen) {\n document.body.classList.add(\"KUI-Modal_body\")\n } else {\n document.body.classList.remove(\"KUI-Modal_body\")\n }\n }, [isOpen])\n\n useEffect(\n () => () => {\n document.body.classList.remove(\"KUI-Modal_body\")\n },\n []\n )\n\n const closeModal = (e) => {\n if (modalRef.current && !modalRef.current.contains(e.target)) {\n handleClose()\n }\n }\n\n if (!isOpen) {\n return null\n }\n\n return createPortal(\n <StyledContainer\n className=\"KUI-Modal_container\"\n onClick={closeModal}\n {...otherProps}\n >\n <Global\n styles={css`\n .KUI-Modal_body {\n overflow: hidden;\n padding-right: 17px;\n }\n `}\n />\n <StyledModal\n ref={modalRef}\n isOpen={isOpen}\n size={size}\n className={classNames(\n \"KUI-Modal\",\n isOpen && \"KUI-Modal_open\",\n isScrollable && \"KUI-Modal_scrollable\",\n className\n )}\n >\n <StyledHeaderWrapper className=\"KUI-Modal_header\">\n {title && (\n <StyledModalTitle className=\"KUI-Modal_title\">\n {title}\n </StyledModalTitle>\n )}\n {description && (\n <StyledDescriptionWrapper className=\"KUI-Modal_description\">\n <StyledDescription size=\"s\" color=\"fiftyP\">\n {description}\n </StyledDescription>\n </StyledDescriptionWrapper>\n )}\n <StyledHeadingIconsWrapper>\n <div>{icon}</div>\n <Button\n className=\"KUI-Modal_close-button\"\n isCircle\n size=\"xxs\"\n variant=\"transparent\"\n onClick={handleClose}\n >\n <CloseIcon />\n </Button>\n </StyledHeadingIconsWrapper>\n </StyledHeaderWrapper>\n {children}\n </StyledModal>\n </StyledContainer>,\n document.body\n )\n}\n\nModal.defaultProps = {\n isOpen: false,\n handleClose: null,\n title: \"\",\n size: \"small\",\n}\n\nModal.propTypes = {\n isOpen: PropTypes.bool,\n handleClose: PropTypes.func,\n title: PropTypes.string,\n size: PropTypes.oneOf([\"small\", \"large\"]),\n}\n\nexport default Modal\n\nconst StyledContainer = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n z-index: 1500;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: all linear 0.2s;\n`\n\nconst StyledModal = styled.div`\n border-radius: 12px;\n overflow: visible;\n overflow-y: visible;\n box-shadow: 0px 11px 15px -7px rgb(0 0 0 / 20%),\n 0px 24px 38px 3px rgb(0 0 0 / 14%), 0px 9px 46px 8px rgb(0 0 0 / 12%);\n -ms-overflow-style: none;\n scrollbar-width: none;\n background-color: ${palette.grey.zero};\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n max-height: 720px;\n width: ${({ size }) => (size === \"small\" ? 480 : 720)}px;\n display: ${({ isOpen }) => (isOpen ? \"block\" : \"none\")};\n &::-webkit-scrollbar {\n width: 0;\n }\n @media (max-width: 720px) {\n max-height: 90vh;\n }\n @media (max-width: ${breakpoints.xs}px) {\n position: absolute;\n bottom: 0;\n width: 100vw;\n border-radius: 12px 12px 0 0;\n }\n .KUI-Modal_scrollable {\n overflow: auto;\n overflow-y: auto;\n }\n`\n\nconst StyledHeaderWrapper = styled.div`\n top: 0;\n width: 100%;\n background: ${theme.palette.grey.zero};\n z-index: 5;\n border-radius: 12px 12px 0 0;\n position: sticky;\n box-sizing: border-box;\n text-align: center;\n @media (max-width: 600px) {\n padding: 0 16px;\n }\n`\n\nconst StyledModalTitle = styled(Heading)`\n font-weight: 700;\n padding: 36px 40px 8px;\n @media (max-width: 661px) {\n padding: 40px 24px 13px;\n font-size: 18px;\n line-height: 24px;\n }\n`\n\nconst StyledDescriptionWrapper = styled.div`\n padding: 0 40px;\n @media (max-width: 900px) {\n padding: 0 24px;\n }\n`\n\nconst StyledDescription = styled(Caption)`\n @media (max-width: 600px) {\n font-size: 13px;\n line-height: 20px;\n }\n`\n\nconst StyledHeadingIconsWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n cursor: pointer;\n padding: 16px;\n z-index: 5;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n`\n","const switchVariants = {\r\n s: {\r\n width: 40,\r\n height: 22,\r\n before: 14,\r\n },\r\n m: {\r\n width: 36,\r\n height: 26,\r\n before: 18,\r\n },\r\n l: {\r\n width: 56,\r\n height: 34,\r\n before: 26,\r\n },\r\n}\r\n\r\nexport default switchVariants\r\n","import React, { forwardRef } from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport { theme } from \"../../theme\"\nimport switchVariants from \"./variants\"\n\nconst { palette } = theme\n\nconst Switch = forwardRef((props, ref) => {\n const { size, className, label, error, inputRef, ...switchProps } = props\n\n return (\n <StyledLabel className={classNames(\"KUI-Switch_label\", className)}>\n <StyledSwitch\n variant={switchVariants[size]}\n ref={inputRef}\n type=\"checkbox\"\n className=\"KUI-Switch\"\n {...switchProps}\n />\n <StyledCustomSwitch\n variant={switchVariants[size]}\n error={!!error}\n className={classNames(\n \"KUI-Switch_custom\",\n !!error && \"KUI-Switch_error\"\n )}\n />\n {!!label && (\n <StyledSwitchLabel className=\"KUI-Label_switch\">\n {label}\n </StyledSwitchLabel>\n )}\n </StyledLabel>\n )\n})\n\nSwitch.defaultProps = {\n label: \"\",\n className: \"\",\n name: \"check\",\n size: \"s\",\n}\n\nSwitch.propTypes = {\n label: PropTypes.string,\n size: PropTypes.oneOf([\"s\", \"m\", \"l\"]),\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n}\n\nSwitch.displayName = \"Switch\"\n\nexport default Switch\n\nconst switchVariantCSS = ({ variant }) => css`\n width: ${variant.width}px;\n height: ${variant.height}px;\n &::before {\n width: ${variant.before}px;\n }\n`\n\nconst switchErrorCSS = ({ error }) =>\n error &&\n css`\n border-color: ${palette.red.fiftyP};\n background-color: ${palette.red.five};\n `\n\nconst StyledCustomSwitch = styled.span`\n background: #c9ced6;\n border-radius: 24px;\n padding: 3px;\n box-sizing: border-box;\n border: 1px solid transparent;\n transition: all linear 0.3s;\n display: flex;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n &:before {\n content: \"\";\n background: ${palette.grey.zero};\n border-radius: 50%;\n height: 100%;\n transition: all ease-out 0.3s;\n margin-left: 0;\n }\n ${switchVariantCSS};\n ${switchErrorCSS};\n`\n\nconst StyledSwitch = styled.input`\n opacity: 0;\n position: absolute;\n z-index: -1;\n &:checked + .KUI-Switch_custom {\n background-color: ${palette.brand.main};\n &:before {\n margin-left: calc(100% - ${({ variant }) => `${variant.before}px`});\n }\n }\n &:disabled + .KUI-Switch_custom {\n background-color: ${palette.grey.zero};\n border-color: ${palette.grey.fifteenB};\n &:before {\n background-color: ${palette.grey.fifteenB};\n }\n }\n`\n\nconst StyledLabel = styled.label`\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n`\n\nconst StyledSwitchLabel = styled.span`\n margin-left: 14px;\n`\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nconst Radio = forwardRef((props, ref) => {\r\n const { label, value, inputRef, ...radioProps } = props\r\n\r\n return (\r\n <StyledLabel className=\"KUI-Radio_label\">\r\n <StyledRadio\r\n ref={inputRef}\r\n value={value}\r\n type=\"radio\"\r\n className=\"KUI-Radio\"\r\n {...radioProps}\r\n />\r\n <StyledCustomRadio className=\"KUI-Radio_custom\" />\r\n {!!label && (\r\n <StyledRadioLabel className=\"KUI-Label_radio\">{label}</StyledRadioLabel>\r\n )}\r\n </StyledLabel>\r\n )\r\n})\r\n\r\nRadio.defaultProps = {\r\n label: \"\",\r\n value: \"\",\r\n name: \"radio\",\r\n}\r\n\r\nRadio.propTypes = {\r\n label: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n}\r\n\r\nRadio.displayName = \"Radio\"\r\n\r\nexport default Radio\r\n\r\nconst StyledCustomRadio = styled.span`\r\n border-radius: 50%;\r\n padding: 1px;\r\n width: 20px;\r\n height: 20px;\r\n box-sizing: border-box;\r\n border: 1px solid ${palette.grey.fifteenB};\r\n transition: all linear 0.3s;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n &:before {\r\n content: \"\";\r\n display: block;\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 50%;\r\n background-color: ${palette.grey.zero};\r\n transition: all linear 0.2s;\r\n }\r\n`\r\n\r\nconst StyledRadio = styled.input`\r\n opacity: 0;\r\n position: absolute;\r\n z-index: -1;\r\n &:checked + .KUI-Radio_custom:before {\r\n background-color: ${palette.brand.main};\r\n background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z\" fill=\"%23fff\"/%3E%3C/svg%3E');\r\n }\r\n &:disabled + .KUI-Radio_custom {\r\n background-color: ${palette.background.light2};\r\n border-color: ${palette.background.light2};\r\n &:before {\r\n background-color: ${palette.background.light2};\r\n }\r\n }\r\n &:disabled:checked + .KUI-Radio_custom:before {\r\n background-color: ${palette.grey.fifteenB};\r\n }\r\n`\r\n\r\nconst StyledLabel = styled.label`\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n &:hover {\r\n .KUI-Radio:not(:disabled):not(:checked) + .KUI-Radio_custom {\r\n border-color: ${palette.brand.main};\r\n }\r\n .KUI-Radio:not(:disabled):checked + .KUI-Radio_custom {\r\n border-color: ${palette.brand.light};\r\n }\r\n }\r\n`\r\n\r\nconst StyledRadioLabel = styled.span`\r\n margin-left: 14px;\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\n\r\nconst FileIcon = ({ width, height }) => (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox={`0 0 ${width} ${height}`}\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M6.10782 5.22682C6.33097 5.00366 6.69278 5.00366 6.91594 5.22682C7.13909 5.44998 7.13909 5.81179 6.91594 6.03494L4.53198 8.4189C4.20799 8.74289 4.18918 9.28829 4.53198 9.63109C4.87477 9.97388 5.42017 9.95507 5.74416 9.63109L10.1888 5.18642C11.104 4.2712 11.054 2.81907 10.1888 1.95393C9.32369 1.08879 7.87156 1.03871 6.95634 1.95393L2.51167 6.3986C1.05411 7.85616 1.08129 10.221 2.51167 11.6514C3.94205 13.0818 6.3069 13.109 7.76447 11.6514L10.1484 9.26743C10.3716 9.04427 10.7334 9.04427 10.9565 9.26743C11.1797 9.49059 11.1797 9.8524 10.9565 10.0756L8.57259 12.4595C6.6645 14.3676 3.57614 14.3321 1.70355 12.4595C-0.169037 10.5869 -0.204535 7.49856 1.70355 5.59048L6.14822 1.14581C7.52269 -0.228658 9.69748 -0.153665 10.997 1.14581C12.2964 2.44528 12.3714 4.62007 10.997 5.99454L6.55228 10.4392C5.79396 11.1975 4.5259 11.2413 3.72386 10.4392C2.92181 9.63716 2.96554 8.3691 3.72386 7.61078L6.10782 5.22682Z\"\r\n fill=\"#7F8285\"\r\n />\r\n </svg>\r\n)\r\n\r\nFileIcon.defaultProps = {\r\n width: 12,\r\n height: 14,\r\n}\r\n\r\nFileIcon.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n}\r\n\r\nexport default FileIcon\r\n","import React, { forwardRef, useState } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport Text from \"../Text\"\r\nimport FileIcon from \"../../icons/FileIcon\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nconst InputFile = forwardRef((props, ref) => {\r\n const { className, label, name, ...inputProps } = props\r\n const [value, setValue] = useState(label)\r\n\r\n const setFileName = (e) => {\r\n if (e.target.files[0]) {\r\n setValue(e.target.files[0].name)\r\n } else {\r\n setValue(label)\r\n }\r\n\r\n if (inputProps.onInput) inputProps.onInput(e)\r\n }\r\n\r\n return (\r\n <StyledWrapper className={classNames(\"KUI-InputFile_wrapper\", className)}>\r\n <StyledLabel className=\"KUI-InputFile_label\">\r\n <StyledInput\r\n type=\"file\"\r\n className=\"KUI-InputFile\"\r\n {...inputProps}\r\n onInput={setFileName}\r\n />\r\n\r\n <StyledTitle\r\n active={value !== label}\r\n size=\"s\"\r\n className={classNames(\r\n \"KUI-InputFile_title\",\r\n value !== label && \"KUI-InputFile_value\"\r\n )}\r\n >\r\n {value}\r\n </StyledTitle>\r\n <FileIcon />\r\n </StyledLabel>\r\n </StyledWrapper>\r\n )\r\n})\r\n\r\nInputFile.displayName = \"InputFile\"\r\n\r\nInputFile.propTypes = {\r\n label: PropTypes.string,\r\n}\r\n\r\nexport default InputFile\r\n\r\nconst StyledWrapper = styled.div`\r\n background-color: ${palette.grey.zero};\r\n border: 1px solid ${palette.grey.fifteenB};\r\n height: 56px;\r\n box-sizing: border-box;\r\n border-radius: 8px;\r\n padding: 0 16px;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n`\r\n\r\nconst StyledInput = styled.input`\r\n display: none;\r\n`\r\n\r\nconst StyledLabel = styled.label`\r\n display: flex;\r\n cursor: pointer;\r\n justify-content: space-between;\r\n align-items: center;\r\n height: 100%;\r\n`\r\nconst titleActiveCSS = css`\r\n color: ${palette.grey.seventy};\r\n font-weight: 500;\r\n`\r\n\r\nconst StyledTitle = styled(Text)`\r\n color: ${palette.grey.fiftyP};\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n max-width: calc(100% - 20px);\r\n ${({ active }) => active && titleActiveCSS};\r\n`\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nfunction Divider({ className }) {\r\n return <StyledDivider className={classNames(\"KUI-Divider\", className)} />\r\n}\r\n\r\nDivider.defaultProps = {\r\n className: \"\",\r\n}\r\n\r\nDivider.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default Divider\r\n\r\nconst StyledDivider = styled.hr`\r\n height: 1px;\r\n border: none;\r\n background-color: ${theme.palette.grey.fifteenB};\r\n margin: 0;\r\n`\r\n","import React, { forwardRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst breakpoints = theme.breakpoints\r\n\r\nconst Container = forwardRef(({ className, ...props }, ref) => (\r\n <StyledContainer\r\n ref={ref}\r\n className={classNames(\"KUI-Container\", className)}\r\n {...props}\r\n />\r\n))\r\n\r\nContainer.displayName = \"Container\"\r\n\r\nexport default Container\r\n\r\nconst StyledContainer = styled.div`\r\n margin: 0 auto;\r\n box-sizing: border-box;\r\n padding: 0 16px;\r\n width: 100%;\r\n @media (min-width: 1280px) {\r\n max-width: 1280px;\r\n }\r\n @media (min-width: ${breakpoints.xs}px) {\r\n padding: 0 24px;\r\n }\r\n`\r\n","import React, { forwardRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst breakpoints = theme.breakpoints\r\n\r\nconst Grid = forwardRef(\r\n ({ item, container, className, ...otherProps }, ref) => (\r\n <StyledGrid\r\n ref={ref}\r\n item={item}\r\n container={container}\r\n className={classNames(\r\n item && \"KUI-Grid_Item\",\r\n container && \"KUI-Grid_Container\",\r\n className\r\n )}\r\n {...otherProps}\r\n />\r\n )\r\n)\r\n\r\nGrid.displayName = \"Grid\"\r\n\r\nGrid.propTypes = {\r\n spacing: PropTypes.number,\r\n justify: PropTypes.oneOf([\r\n \"center\",\r\n \"flex-start\",\r\n \"flex-end\",\r\n \"space-between\",\r\n ]),\r\n alignItems: PropTypes.oneOf([\"center\", \"flex-start\", \"flex-end\"]),\r\n alignContent: PropTypes.oneOf([\"center\", \"flex-start\", \"flex-end\"]),\r\n direction: PropTypes.oneOf([\"column\", \"row\"]),\r\n}\r\n\r\nexport default Grid\r\n\r\nconst containerSpacingCSS = (spacing) => css`\r\n width: calc(100% + (${theme.settings.spacing} * ${spacing}px));\r\n margin-top: calc(0px - ((${theme.settings.spacing} * ${spacing}px)));\r\n margin-left: calc(0px - ((${theme.settings.spacing} * ${spacing}px)));\r\n & > .KUI-Grid_Item {\r\n padding-left: calc((${theme.settings.spacing} * ${spacing}px));\r\n padding-top: calc((${theme.settings.spacing} * ${spacing}px));\r\n }\r\n`\r\n\r\nconst containerCSS = (props) => css`\r\n display: flex;\r\n flex-wrap: ${props.wrap || \"wrap\"};\r\n box-sizing: border-box;\r\n width: 100%;\r\n justify-content: ${props.justify || \"unset\"};\r\n align-items: ${props.alignItems || \"unset\"};\r\n align-content: ${props.alignContent || \"unset\"};\r\n flex-direction: ${props.direction || \"unset\"};\r\n ${props.spacing && containerSpacingCSS(props.spacing)}\r\n`\r\n\r\nconst itemSizeCSS = (size) =>\r\n size &&\r\n css`\r\n max-width: ${size === \"auto\"\r\n ? \"auto\"\r\n : `calc(100% / (${theme.settings.columns} / ${size}))`};\r\n flex-basis: ${size === \"auto\"\r\n ? \"auto\"\r\n : `calc(100% / (${theme.settings.columns} / ${size}))`};\r\n `\r\n\r\nconst itemCSS = (props) => css`\r\n margin: 0;\r\n box-sizing: border-box;\r\n flex-grow: 0;\r\n @media (min-width: 0px) {\r\n ${itemSizeCSS(props.xs)};\r\n }\r\n @media (min-width: ${breakpoints.xs + 1}px) {\r\n ${itemSizeCSS(props.sm)};\r\n }\r\n @media (min-width: ${breakpoints.sm + 1}px) {\r\n ${itemSizeCSS(props.md)};\r\n }\r\n @media (min-width: ${breakpoints.md + 1}px) {\r\n ${itemSizeCSS(props.lg)};\r\n }\r\n @media (min-width: ${breakpoints.xl}px) {\r\n ${itemSizeCSS(props.xl)};\r\n }\r\n`\r\n\r\nconst StyledGrid = styled.div`\r\n ${({ item, ...other }) => item && itemCSS(other)}\r\n ${({ container, ...other }) => container && containerCSS(other)}\r\n`\r\n","import React, { forwardRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { spacing } = theme.settings\r\nconst Box = forwardRef((props, ref) => <StyledBox ref={ref} {...props} />)\r\n\r\nBox.propTypes = {\r\n pt: PropTypes.number,\r\n pb: PropTypes.number,\r\n pr: PropTypes.number,\r\n pl: PropTypes.number,\r\n mt: PropTypes.number,\r\n mb: PropTypes.number,\r\n mr: PropTypes.number,\r\n ml: PropTypes.number,\r\n}\r\n\r\nBox.displayName = \"Box\"\r\n\r\nexport default Box\r\n\r\nconst StyledBox = styled.div`\r\n ${({ mt }) => mt && `margin-top: ${mt * spacing}px`};\r\n ${({ mb }) => mb && `margin-bottom: ${mb * spacing}px`};\r\n ${({ mr }) => mr && `margin-right: ${mr * spacing}px`};\r\n ${({ ml }) => ml && `margin-left: ${ml * spacing}px`};\r\n\r\n ${({ pt }) => pt && `padding-top: ${pt * spacing}px`};\r\n ${({ pb }) => pb && `padding-bottom: ${pb * spacing}px`};\r\n ${({ pr }) => pr && `padding-right: ${pr * spacing}px`};\r\n ${({ pl }) => pl && `padding-left: ${pl * spacing}px`};\r\n`\r\n","import React, { useRef } from \"react\"\r\nimport styled from \"@emotion/styled\"\r\nimport classNames from \"classnames\"\r\n\r\nfunction Accordion(props) {\r\n const { children, onChange, expanded, className, disabled, ...otherProps } =\r\n props\r\n const detailsBlock = useRef(null)\r\n const [summary, ...otherChildren] = React.Children.toArray(children)\r\n\r\n const handleTransitionEnd = () => {\r\n if (detailsBlock.current.style.height !== \"0px\") {\r\n detailsBlock.current.style.height = \"auto\"\r\n }\r\n }\r\n\r\n return (\r\n <StyledAccordion\r\n className={classNames(\"KUI-Accordion\", className)}\r\n {...otherProps}\r\n >\r\n <div>\r\n {React.cloneElement(summary, {\r\n detailsBlock,\r\n onChange,\r\n expanded,\r\n disabled,\r\n })}\r\n </div>\r\n <StyledCollapse\r\n className=\"KUI-Collapse\"\r\n onTransitionEnd={handleTransitionEnd}\r\n ref={detailsBlock}\r\n >\r\n {otherChildren}\r\n </StyledCollapse>\r\n </StyledAccordion>\r\n )\r\n}\r\n\r\nexport default Accordion\r\n\r\nconst StyledAccordion = styled.div`\r\n cursor: pointer;\r\n -webkit-tap-highlight-color: transparent;\r\n`\r\n\r\nconst StyledCollapse = styled.div`\r\n height: 0;\r\n overflow: hidden;\r\n transition: height 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n`\r\n","import React, { useEffect, useState } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\n\r\nfunction AccordionSummary({\r\n detailsBlock,\r\n expanded: defaultExpanded,\r\n onChange,\r\n className,\r\n children,\r\n expandIcon,\r\n contentStyles,\r\n expandedStyles,\r\n iconStyles,\r\n disabled,\r\n ...otherProps\r\n}) {\r\n const [expanded, setExpanded] = useState(!!defaultExpanded)\r\n\r\n const handleClick = () => {\r\n setExpanded((prev) => !prev)\r\n }\r\n\r\n useEffect(() => {\r\n setExpanded(defaultExpanded)\r\n }, [defaultExpanded])\r\n\r\n useEffect(() => {\r\n if (detailsBlock) {\r\n if (expanded) {\r\n detailsBlock.current.style.height = `${detailsBlock.current?.scrollHeight}px`\r\n } else {\r\n detailsBlock.current.style.height = `${detailsBlock.current?.scrollHeight}px`\r\n window\r\n .getComputedStyle(detailsBlock.current, null)\r\n .getPropertyValue(\"height\")\r\n detailsBlock.current.style.height = \"0\"\r\n }\r\n }\r\n if (onChange) {\r\n onChange(expanded)\r\n }\r\n }, [expanded])\r\n\r\n return (\r\n <StyledAccordionSummary\r\n onClick={handleClick}\r\n className={classNames(\r\n \"KUI-Accordion_Summary\",\r\n disabled && \"KUI-Accordion_Summary-disabled\",\r\n className\r\n )}\r\n {...otherProps}\r\n >\r\n <StyledSummaryContent\r\n className={classNames(\r\n \"KUI-Accordion_Summary-Content\",\r\n expanded && \"KUI-Accordion_expanded\",\r\n expanded && expandedStyles,\r\n contentStyles\r\n )}\r\n expanded={expanded}\r\n >\r\n {children}\r\n </StyledSummaryContent>\r\n <StyledSummaryIcon\r\n expanded={expanded}\r\n className={classNames(\r\n \"KUI-Accordion_Summary-Icon\",\r\n expanded && \"KUI-Accordion_expanded\",\r\n expanded && expandedStyles,\r\n iconStyles\r\n )}\r\n >\r\n {expandIcon}\r\n </StyledSummaryIcon>\r\n </StyledAccordionSummary>\r\n )\r\n}\r\n\r\nAccordionSummary.propTypes = {\r\n expandIcon: PropTypes.element,\r\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n}\r\n\r\nexport default AccordionSummary\r\n\r\nconst StyledAccordionSummary = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n`\r\n\r\nconst StyledSummaryContent = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"expanded\",\r\n})`\r\n margin: 12px 0;\r\n display: flex;\r\n width: 100%;\r\n transition: margin 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n .KUI-Accordion_Summary-disabled {\r\n pointer-events: none;\r\n }\r\n`\r\n\r\nconst StyledSummaryIcon = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"expanded\",\r\n})`\r\n transform: ${({ expanded }) =>\r\n expanded ? \"rotate(180deg)\" : \"rotate(0deg)\"};\r\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n`\r\n","import React from \"react\"\r\n\r\nfunction AccordionDetails(props) {\r\n return <div {...props} />\r\n}\r\n\r\nexport default AccordionDetails\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport { keyframes } from \"@emotion/react\"\r\nimport styled from \"@emotion/styled\"\r\n\r\nfunction Skeleton({ className, ...otherProps }) {\r\n return (\r\n <StyledSkeleton\r\n className={classNames(\"KUI-Skeleton\", className)}\r\n {...otherProps}\r\n />\r\n )\r\n}\r\n\r\nexport default Skeleton\r\n\r\nconst waveAnim = keyframes`\r\n 0% {\r\n transform: translateX(-100%);\r\n }\r\n 50% {\r\n transform: translateX(100%);\r\n }\r\n 100% {\r\n transform: translateX(100%);\r\n }\r\n`\r\n\r\nconst StyledSkeleton = styled.span`\r\n overflow: hidden;\r\n position: relative;\r\n display: block;\r\n background-color: rgba(0, 0, 0, 0.11);\r\n height: 1.2em;\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n padding-top: 100%;\r\n }\r\n &::after {\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n content: \"\";\r\n position: absolute;\r\n animation: ${waveAnim} 1.6s linear 0.5s infinite;\r\n transform: translateX(-100%);\r\n background: linear-gradient(\r\n 90deg,\r\n transparent,\r\n rgba(0, 0, 0, 0.04),\r\n transparent\r\n );\r\n }\r\n`\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\n\r\nfunction AppBar({ className, isFixed, ...otherProps }) {\r\n return (\r\n <StyledAppBar\r\n isFixed={isFixed}\r\n className={classNames(\r\n \"KUI-AppBar\",\r\n isFixed && \"KUI-AppBar_fixed\",\r\n className\r\n )}\r\n {...otherProps}\r\n />\r\n )\r\n}\r\n\r\nAppBar.propTypes = {\r\n isFixed: PropTypes.bool,\r\n}\r\n\r\nAppBar.defaultProps = {\r\n isFixed: true,\r\n}\r\n\r\nexport default AppBar\r\n\r\nconst fixesBarCSS = ({ isFixed }) =>\r\n isFixed &&\r\n css`\r\n top: 0;\r\n left: auto;\r\n right: 0;\r\n position: fixed;\r\n `\r\n\r\nconst StyledAppBar = styled.header`\r\n width: 100%;\r\n display: flex;\r\n z-index: 1100;\r\n box-sizing: border-box;\r\n flex-shrink: 0;\r\n background: #fff;\r\n ${fixesBarCSS};\r\n`\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { breakpoints } = theme\r\n\r\nfunction ToolBar({ className, ...otherProps }) {\r\n return (\r\n <StyledTollBar\r\n className={classNames(\"KUI-ToolBar\", className)}\r\n {...otherProps}\r\n />\r\n )\r\n}\r\n\r\nexport default ToolBar\r\n\r\nconst StyledTollBar = styled.div`\r\n display: flex;\r\n position: relative;\r\n align-items: center;\r\n padding: 0px;\r\n min-height: 64px;\r\n @media (max-width: ${breakpoints.xs}px) {\r\n min-height: 48px;\r\n }\r\n`\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport { keyframes } from \"@emotion/react\"\r\nimport styled from \"@emotion/styled\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst palette = theme.palette\r\n\r\nfunction CircularProgress({\r\n className,\r\n svgStyles,\r\n circleStyles,\r\n ...otherProps\r\n}) {\r\n return (\r\n <StyledProgress\r\n className={classNames(\"KUI-CircularProgress\", className)}\r\n {...otherProps}\r\n >\r\n <StyledSVG\r\n className={classNames(\"KUI-CircularProgress_svg\", svgStyles)}\r\n viewBox=\"22 22 44 44\"\r\n >\r\n <StyledCircle\r\n className={classNames(\"KUI-CircularProgress_circle\", circleStyles)}\r\n cx=\"44\"\r\n cy=\"44\"\r\n r=\"20.2\"\r\n fill=\"none\"\r\n strokeWidth=\"3.6\"\r\n />\r\n </StyledSVG>\r\n </StyledProgress>\r\n )\r\n}\r\n\r\nexport default CircularProgress\r\n\r\nconst rotateAnimate = keyframes`\r\n 0% {\r\n transform-origin: 50% 50%;\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n`\r\n\r\nconst circleAnimate = keyframes`\r\n 0% {\r\n stroke-dasharray: 1px, 200px;\r\n stroke-dashoffset: 0px;\r\n }\r\n 50% {\r\n stroke-dasharray: 100px, 200px;\r\n stroke-dashoffset: -15px;\r\n }\r\n 100% {\r\n stroke-dasharray: 100px, 200px;\r\n stroke-dashoffset: -125px;\r\n }\r\n`\r\n\r\nconst StyledProgress = styled.div`\r\n color: ${palette.brand.main};\r\n width: 40px;\r\n height: 40px;\r\n display: inline-block;\r\n animation: ${rotateAnimate} 1.4s linear infinite;\r\n`\r\n\r\nconst StyledSVG = styled.svg`\r\n display: block;\r\n`\r\n\r\nconst StyledCircle = styled.circle`\r\n stroke: currentColor;\r\n animation: ${circleAnimate} 1.4s ease-in-out infinite;\r\n stroke-dasharray: 80px, 200px;\r\n stroke-dashoffset: 0px;\r\n`\r\n","import React from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\n\r\nfunction LinearProgress({\r\n className,\r\n progressBarStyles,\r\n value,\r\n ...otherProps\r\n}) {\r\n let newValue = value\r\n\r\n if (value > 100) {\r\n newValue = 100\r\n }\r\n\r\n return (\r\n <StyledLinearProgress\r\n className={classNames(\"KUI-LinearProgress\", className)}\r\n aria-valuenow={newValue}\r\n {...otherProps}\r\n >\r\n <StyledLinearProgressBar\r\n className={classNames(\"KUI-LinearProgress_bar\", progressBarStyles)}\r\n style={{ transform: `translateX(${newValue - 100}%)` }}\r\n />\r\n </StyledLinearProgress>\r\n )\r\n}\r\n\r\nLinearProgress.defaultProps = {\r\n value: 0,\r\n}\r\n\r\nexport default LinearProgress\r\n\r\nconst StyledLinearProgress = styled.div`\r\n overflow: hidden;\r\n position: relative;\r\n backdrop-filter: blur(4px);\r\n background-color: rgba(255, 255, 255, 0.55);\r\n border-radius: 66px;\r\n height: 6px;\r\n`\r\n\r\nconst StyledLinearProgressBar = styled.div`\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n bottom: 0;\r\n position: absolute;\r\n transition: transform 0.4s linear;\r\n transform-origin: left;\r\n opacity: 0.9;\r\n border-radius: 66px;\r\n background-color: white;\r\n`\r\n","import React, { forwardRef, useEffect, useRef, useState } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport { css } from \"@emotion/react\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst { palette } = theme\r\n\r\nconst nextItem = (list, item) => {\r\n if (list === item) {\r\n return list.firstChild\r\n }\r\n if (item && item.nextElementSibling) {\r\n return item.nextElementSibling\r\n }\r\n return list.firstChild\r\n}\r\n\r\nconst previousItem = (list, item) => {\r\n if (list === item) {\r\n return list.lastChild\r\n }\r\n if (item && item.previousElementSibling) {\r\n return item.previousElementSibling\r\n }\r\n return list.lastChild\r\n}\r\n\r\nconst moveFocus = (list, currentFocus, traversalFunction) => {\r\n const nextFocus = traversalFunction(list, currentFocus)\r\n\r\n nextFocus.focus()\r\n}\r\n\r\nconst Tabs = forwardRef((props, ref) => {\r\n const {\r\n value,\r\n onChange,\r\n className,\r\n indicatorPos,\r\n indicatorHidden,\r\n children: childrenProp,\r\n ...otherProps\r\n } = props\r\n const tabListRef = useRef(null)\r\n const [indicatorStyles, setIndicatorStyles] = useState({})\r\n\r\n const handleKeyDown = (e) => {\r\n const list = tabListRef.current\r\n const currFocus = list.ownerDocument.activeElement\r\n switch (e.key) {\r\n case \"ArrowLeft\":\r\n e.preventDefault()\r\n moveFocus(list, currFocus, previousItem)\r\n break\r\n case \"ArrowRight\":\r\n e.preventDefault()\r\n moveFocus(list, currFocus, nextItem)\r\n break\r\n case \"Home\":\r\n e.preventDefault()\r\n moveFocus(list, currFocus, nextItem)\r\n break\r\n case \"End\":\r\n e.preventDefault()\r\n moveFocus(list, currFocus, previousItem)\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n const children = React.Children.map(childrenProp, (child, childIndex) => {\r\n if (!React.isValidElement(child)) {\r\n return null\r\n }\r\n\r\n const childValue =\r\n child.props.value === undefined ? childIndex : child.props.value\r\n const selected = childValue === value\r\n\r\n return React.cloneElement(child, {\r\n selected,\r\n onChange,\r\n value: childValue,\r\n })\r\n })\r\n\r\n useEffect(() => {\r\n const selectedTab = tabListRef.current?.children[value]\r\n setIndicatorStyles({\r\n width: selectedTab?.clientWidth,\r\n // transform: `translateX(${selectedTab?.offsetLeft})`,\r\n left: selectedTab?.offsetLeft,\r\n })\r\n }, [value])\r\n\r\n return (\r\n <StyledTabs ref={ref} className=\"KUI-Tabs\" {...otherProps}>\r\n <StyledTabList\r\n tabIndex={0}\r\n role=\"tablist\"\r\n className={classNames(\"KUI-TabList\", className)}\r\n ref={tabListRef}\r\n onKeyDown={handleKeyDown}\r\n >\r\n {children}\r\n </StyledTabList>\r\n <StyledTabsIndicator\r\n hidden={indicatorHidden}\r\n position={indicatorPos}\r\n className={classNames(\r\n \"KUI-Tabs_indicator\",\r\n indicatorHidden && \"KUI-Tabs_hidden\"\r\n )}\r\n style={indicatorStyles}\r\n />\r\n </StyledTabs>\r\n )\r\n})\r\n\r\nTabs.propTypes = {\r\n indicatorPos: PropTypes.oneOf([\"bottom\", \"top\"]),\r\n}\r\n\r\nTabs.defaultProps = {\r\n indicatorPos: \"bottom\",\r\n}\r\n\r\nexport default Tabs\r\n\r\nconst indicatorPositionsCSS = {\r\n top: css`\r\n top: 0;\r\n border-radius: 0 0 8px 8px;\r\n `,\r\n bottom: css`\r\n bottom: 0;\r\n border-radius: 8px 8px 0px 0px;\r\n `,\r\n}\r\n\r\nconst StyledTabs = styled.div`\r\n position: relative;\r\n`\r\n\r\nconst StyledTabList = styled.div`\r\n display: flex;\r\n`\r\n\r\nconst StyledTabsIndicator = styled.span`\r\n position: absolute;\r\n background-color: ${palette.brand.main};\r\n transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\r\n left 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n height: 2px;\r\n will-change: left;\r\n opacity: ${({ hidden }) => (hidden ? 0 : 1)};\r\n ${({ position }) => indicatorPositionsCSS[position]};\r\n`\r\n","import React, { forwardRef, useRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\nimport Caption from \"../Caption\"\r\n\r\nconst Tab = forwardRef((props, ref) => {\r\n const { selected, value, className, onChange, onClick, ...other } = props\r\n const tabRef = useRef()\r\n\r\n const handleClick = (e) => {\r\n if (!selected && onChange) {\r\n onChange(e, value)\r\n }\r\n\r\n if (onClick) {\r\n onClick(e)\r\n }\r\n }\r\n\r\n const forwardedRef = (elem) => {\r\n if (ref) {\r\n ref.current = elem\r\n }\r\n tabRef.current = elem\r\n }\r\n\r\n return (\r\n <StyledTab\r\n className={classNames(\r\n \"KUI-Tab\",\r\n selected && \"KUI-Tab_selected\",\r\n className\r\n )}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={selected}\r\n tabIndex={selected ? 0 : -1}\r\n aria-controls={`tabpanel-${value}`}\r\n id={`tab-${value}`}\r\n ref={forwardedRef}\r\n onClick={handleClick}\r\n {...other}\r\n >\r\n {typeof other.label === \"string\" ? (\r\n <Caption weight={600} size=\"sm\" color=\"white\">\r\n {other.label}\r\n </Caption>\r\n ) : (\r\n other.label\r\n )}\r\n </StyledTab>\r\n )\r\n})\r\n\r\nTab.propTypes = {\r\n label: PropTypes.string,\r\n}\r\n\r\nexport default Tab\r\n\r\nconst StyledTab = styled.button`\r\n height: 64px;\r\n border: none;\r\n background: transparent;\r\n cursor: pointer;\r\n margin-right: 24px;\r\n padding: 0;\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n > p {\r\n white-space: nowrap;\r\n }\r\n`\r\n","import React, { forwardRef, useEffect, useRef } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport styled from \"@emotion/styled\"\r\nimport Tabs from \"../Tabs\"\r\nimport Tab from \"../Tab\"\r\n\r\nconst TabsPanel = forwardRef((props, ref) => {\r\n const {\r\n tabs,\r\n tabPanels,\r\n paths,\r\n activeTab,\r\n onChange,\r\n indicatorPos,\r\n ...other\r\n } = props\r\n const [value, setValue] = React.useState(Number(activeTab))\r\n const tabsRef = useRef(null)\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue)\r\n if (paths && paths.length > 0) {\r\n window.history.pushState({ route: paths[newValue] }, \"\", paths[newValue])\r\n }\r\n if (onChange) {\r\n onChange(event, newValue)\r\n }\r\n\r\n tabsRef.current?.scrollTo({\r\n left: event.target.offsetLeft,\r\n behavior: \"smooth\",\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n setValue(Number(activeTab))\r\n }, [activeTab])\r\n\r\n return (\r\n <div ref={ref} {...other}>\r\n <StyledTabsWrapper ref={tabsRef} className=\"KUI-TabsWrapper\">\r\n <Tabs value={value} onChange={handleChange} indicatorPos={indicatorPos}>\r\n {tabs.map((item) => (\r\n <Tab label={item} key={item} />\r\n ))}\r\n </Tabs>\r\n </StyledTabsWrapper>\r\n {tabPanels?.map((item, index) => (\r\n <div\r\n key={index}\r\n role=\"tabpanel\"\r\n hidden={value !== index}\r\n id={`tabpanel-${index}`}\r\n aria-labelledby={`tab-${index}`}\r\n >\r\n {value === index && item}\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n})\r\n\r\nTabsPanel.propTypes = {\r\n indicatorPos: PropTypes.oneOf([\"bottom\", \"top\"]),\r\n}\r\n\r\nexport default TabsPanel\r\n\r\nconst StyledTabsWrapper = styled.div`\r\n overflow-x: scroll;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n &::-webkit-scrollbar {\r\n width: 0;\r\n }\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n`\r\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.indexOf(spyHandler) > -1 && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length && scrollSpy.spySetState.indexOf(stateHandler) > -1) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(history.state, \"\", urlToPush) : history.replaceState(history.state, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n activeStyle: _propTypes2.default.object,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var style = {};\n\n if (this.state && this.state.active) {\n style = _extends({}, this.props.style, this.props.activeStyle);\n } else {\n style = _extends({}, this.props.style);\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.style = style;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","import React, { useEffect, useRef } from \"react\"\r\nimport { Link, scroller, Events } from \"react-scroll\"\r\nimport styled from \"@emotion/styled\"\r\nimport Caption from \"../Caption\"\r\n\r\nconst ScrollTab = ({\r\n selected,\r\n value,\r\n label,\r\n name,\r\n onChange,\r\n offset,\r\n isScrolling,\r\n setIsScrolling,\r\n setIsIndicatorHidden,\r\n isActive,\r\n setIsActive,\r\n}) => {\r\n const activeRef = useRef(true)\r\n const scrollingRef = useRef(isScrolling)\r\n\r\n const handleSelect = (e) => {\r\n setTimeout(() => {\r\n setIsIndicatorHidden(false)\r\n setIsActive(true)\r\n })\r\n if (!isScrolling && onChange) {\r\n onChange(e, value)\r\n }\r\n }\r\n\r\n const handleInactive = () => {\r\n setIsActive(false)\r\n setTimeout(() => {\r\n if (!activeRef.current && !scrollingRef.current) {\r\n setIsIndicatorHidden(true)\r\n }\r\n }, 10)\r\n }\r\n\r\n useEffect(() => {\r\n activeRef.current = isActive\r\n }, [isActive])\r\n\r\n useEffect(() => {\r\n scrollingRef.current = isScrolling\r\n }, [isScrolling])\r\n\r\n const handleKeyDown = (e) => {\r\n switch (e.key) {\r\n case \"Enter\":\r\n handleSelect(e)\r\n scroller.scrollTo(name, { offset })\r\n break\r\n case \"Space\":\r\n handleSelect(e)\r\n scroller.scrollTo(name, { offset })\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n const startScrolling = () => {\r\n setIsScrolling(true)\r\n }\r\n\r\n const endScrolling = () => {\r\n setIsScrolling(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (selected) {\r\n scroller.scrollTo(name, { offset })\r\n }\r\n\r\n Events.scrollEvent.register(\"begin\", (to, element) => {\r\n startScrolling()\r\n })\r\n\r\n Events.scrollEvent.register(\"end\", (to, element) => {\r\n setTimeout(endScrolling)\r\n })\r\n\r\n return () => {\r\n Events.scrollEvent.remove(\"begin\")\r\n Events.scrollEvent.remove(\"end\")\r\n }\r\n }, [])\r\n\r\n const handleClick = (e) => {\r\n if (!selected && onChange) {\r\n onChange(e, value)\r\n }\r\n }\r\n\r\n return (\r\n <StyledScrollTab\r\n to={name}\r\n spy\r\n smooth\r\n duration={600}\r\n offset={offset}\r\n onSetActive={handleSelect}\r\n onSetInactive={handleInactive}\r\n className=\"KUI-ScrollTab\"\r\n role=\"tab\"\r\n aria-selected={selected}\r\n tabIndex={selected ? 0 : -1}\r\n aria-controls={`tabpanel-${value}`}\r\n id={`tab-${value}`}\r\n onKeyDown={handleKeyDown}\r\n onClick={handleClick}\r\n >\r\n <Caption weight={600} size=\"sm\" color=\"white\">\r\n {label}\r\n </Caption>\r\n </StyledScrollTab>\r\n )\r\n}\r\n\r\nexport default ScrollTab\r\n\r\nconst StyledScrollTab = styled(Link)`\r\n margin-right: 24px;\r\n height: 64px;\r\n border: none;\r\n background: transparent;\r\n cursor: pointer;\r\n padding: 0;\r\n display: flex;\r\n align-items: center;\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n`\r\n","import React, { forwardRef, useEffect, useState } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport Tabs from \"../Tabs\"\r\nimport ScrollTab from \"../ScrollTab\"\r\n\r\nconst MenuPanel = forwardRef((props, ref) => {\r\n const { tabs, tabsId, activeTab, onChange, indicatorPos, offset, ...other } =\r\n props\r\n const [value, setValue] = React.useState(Number(activeTab))\r\n const [isIndicatorHidden, setIsIndicatorHidden] = useState(false)\r\n const [isScrolling, setIsScrolling] = useState(false)\r\n const [isActive, setIsActive] = useState(true)\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue)\r\n if (onChange) {\r\n onChange(event, newValue)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setValue(Number(activeTab))\r\n }, [activeTab])\r\n\r\n return (\r\n <Tabs\r\n ref={ref}\r\n value={value}\r\n onChange={handleChange}\r\n indicatorPos={indicatorPos}\r\n indicatorHidden={isIndicatorHidden}\r\n {...other}\r\n >\r\n {tabs.map((item, index) => (\r\n <ScrollTab\r\n isScrolling={isScrolling}\r\n setIsScrolling={setIsScrolling}\r\n offset={offset}\r\n label={item}\r\n name={(tabsId && tabsId[index]) || item}\r\n key={item}\r\n setIsIndicatorHidden={setIsIndicatorHidden}\r\n isActive={isActive}\r\n setIsActive={setIsActive}\r\n />\r\n ))}\r\n </Tabs>\r\n )\r\n})\r\n\r\nMenuPanel.propTypes = {\r\n indicatorPos: PropTypes.oneOf([\"bottom\", \"top\"]),\r\n}\r\n\r\nexport default MenuPanel\r\n","import React, { forwardRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport styled from \"@emotion/styled\"\r\n\r\nconst IconButton = forwardRef(({ className, ...props }, ref) => (\r\n <StyledButton\r\n className={classNames(\"KUI-IconButton\", className)}\r\n ref={ref}\r\n {...props}\r\n />\r\n))\r\n\r\nexport default IconButton\r\n\r\nconst StyledButton = styled.button`\r\n border: none;\r\n background: transparent;\r\n cursor: pointer;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n padding: 0;\r\n margin: 0;\r\n`\r\n","import styled from \"@emotion/styled\"\nimport classNames from \"classnames\"\nimport React, { forwardRef } from \"react\"\n\nconst Popper = forwardRef((props, ref) => {\n const {\n open,\n children,\n spacing,\n className,\n withArrow,\n withoutMobile,\n arrowRef,\n arrowPosition,\n realPlacement,\n ...other\n } = props\n\n const getArrowTopPosition = () => {\n if (arrowPosition?.y) return `${arrowPosition?.y}px`\n if (realPlacement === \"top\") return \"unset\"\n return `-3px`\n }\n\n const arrowPlacement = {\n left: `${Number(arrowPosition?.x)}px`,\n top: getArrowTopPosition(),\n bottom: realPlacement === \"top\" ? \"-3px\" : \"unset\",\n }\n\n return (\n <StyledPopperWrapper\n ref={ref}\n className={classNames(\n \"KUI-Popper\",\n open && \"KUI-Popper_open\",\n !withoutMobile && \"KUI-Popper_withMobile\",\n className\n )}\n spacing={spacing}\n {...other}\n >\n <StyledPopper open={!!open}>\n {children}\n {withArrow && (\n <StyledArrow\n ref={arrowRef}\n style={arrowPlacement}\n className={classNames(\n \"KUI-Popper_arrow\",\n !withoutMobile && \"KUI-Popper_arrow_withMobile\"\n )}\n />\n )}\n </StyledPopper>\n </StyledPopperWrapper>\n )\n})\n\nexport default Popper\n\nconst StyledPopperWrapper = styled.div`\n position: absolute;\n max-width: 215px;\n width: max-content;\n padding: ${({ spacing }) => spacing || 0};\n z-index: -1;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: all ease-out 0.3s;\n &.KUI-Popper_open {\n opacity: 1;\n z-index: 10;\n visibility: visible;\n pointer-events: auto;\n }\n @media (max-width: 600px) {\n &.KUI-Popper_withMobile {\n position: fixed !important;\n bottom: 24px !important;\n top: auto !important;\n left: 16px !important;\n width: calc(100vw - 32px);\n max-width: unset;\n transform: none !important;\n }\n }\n`\n\nconst StyledPopper = styled.div`\n padding: 16px;\n border-radius: 12px;\n background: white;\n box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.1);\n transition: opacity 0.3s ease-out;\n position: relative;\n`\n\nconst StyledArrow = styled.span`\n position: absolute;\n width: 6px;\n height: 6px;\n background: inherit;\n transform: rotate(45deg);\n border-radius: 2px;\n top: -3px;\n left: calc(50% - 3px);\n @media (max-width: 600px) {\n &.KUI-Popper_arrow_withMobile {\n display: none;\n }\n }\n`\n","function getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';\n}\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n const commonAlign = reference[length] / 2 - floating[length] / 2;\n const side = getSide(placement);\n const isVertical = mainAxis === 'x';\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const axis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. This stops `shift()` from taking action, but can\n // be worked around by calling it again after the `arrow()` if desired.\n const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? min$1 - center : max - center : 0;\n return {\n [axis]: coords[axis] - alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset + alignmentOffset\n }\n };\n }\n});\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-start\", side + \"-end\"), []);\n\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\n\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements = alignment !== undefined || allowedPlacements === allPlacements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[main], overflow[cross]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getSideObjectFromPadding(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getMainAxisFromPlacement(placement) === 'x';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getSide(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const axis = getMainAxisFromPlacement(placement);\n const isXAxis = axis === 'x';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isXAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isXAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction getWindow(node) {\n var _node$ownerDocument;\n return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return node instanceof getWindow(node).ShadowRoot || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const safari = isSafari();\n const css = getComputedStyle$1(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || !safari && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !safari && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction isSafari() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createEmptyCoords = v => ({\n x: v,\n y: v\n});\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createEmptyCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createEmptyCoords(0);\nfunction getVisualOffsets(element, isFixed, floatingOffsetParent) {\n var _win$visualViewport, _win$visualViewport2;\n if (isFixed === void 0) {\n isFixed = true;\n }\n if (!isSafari()) {\n return noOffsets;\n }\n const win = element ? getWindow(element) : window;\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== win) {\n return noOffsets;\n }\n return {\n x: ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0,\n y: ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0\n };\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createEmptyCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = getVisualOffsets(domElement, isFixedStrategy, offsetParent);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createEmptyCoords(1);\n const offsets = createEmptyCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isSafari();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createEmptyCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createEmptyCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getScale,\n async getElementRects(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n let isFirstUpdate = true;\n io = new IntersectionObserver(entries => {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }, {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n });\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = true,\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(update);\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, getOverflowAncestors, platform };\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length, i, keys;\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node != referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, [_setReference]);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, [_setFloating]);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n } else {\n update();\n }\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\nexport { arrow, useFloating };\n","import { platform, getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { hideOthers } from 'aria-hidden';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (!serverHandoffComplete) {\n serverHandoffComplete = true;\n }\n }, []);\n return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(_ref, ref) {\n let {\n context: {\n placement,\n elements: {\n floating\n },\n middlewareData: {\n arrow\n }\n },\n width = 14,\n height = 7,\n tipRadius = 0,\n strokeWidth = 0,\n staticOffset,\n stroke,\n d,\n style: {\n transform,\n ...restStyle\n } = {},\n ...rest\n } = _ref;\n if (process.env.NODE_ENV !== \"production\") {\n if (!ref) {\n console.warn('Floating UI: The `ref` prop is required for the `FloatingArrow`', 'component.');\n }\n }\n const clipPathId = useId();\n if (!floating) {\n return null;\n }\n\n // Strokes must be double the border width, this ensures the stroke's width\n // works as you'd expect.\n strokeWidth *= 2;\n const halfStrokeWidth = strokeWidth / 2;\n const svgX = width / 2 * (tipRadius / -8 + 1);\n const svgY = height / 2 * tipRadius / 4;\n const [side, alignment] = placement.split('-');\n const isRTL = platform.isRTL(floating);\n const isCustomShape = !!d;\n const isVerticalSide = side === 'top' || side === 'bottom';\n const yOffsetProp = staticOffset && alignment === 'end' ? 'bottom' : 'top';\n let xOffsetProp = staticOffset && alignment === 'end' ? 'right' : 'left';\n if (staticOffset && isRTL) {\n xOffsetProp = alignment === 'end' ? 'left' : 'right';\n }\n const arrowX = (arrow == null ? void 0 : arrow.x) != null ? staticOffset || arrow.x : '';\n const arrowY = (arrow == null ? void 0 : arrow.y) != null ? staticOffset || arrow.y : '';\n const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n const rotation = {\n top: isCustomShape ? 'rotate(180deg)' : '',\n left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n bottom: isCustomShape ? '' : 'rotate(180deg)',\n right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n }[side];\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n \"aria-hidden\": true,\n ref: ref,\n width: isCustomShape ? width : width + strokeWidth,\n height: width,\n viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n [xOffsetProp]: arrowX,\n [yOffsetProp]: arrowY,\n [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + strokeWidth / 2 + \"px)\",\n transform: \"\" + rotation + (transform != null ? transform : ''),\n ...restStyle\n }\n }), strokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n clipPath: \"url(#\" + clipPathId + \")\",\n fill: \"none\",\n stroke: stroke\n // Account for the stroke on the fill path rendered below.\n ,\n strokeWidth: strokeWidth + (d ? 0 : 1),\n d: dValue\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: strokeWidth && !d ? rest.fill : 'none',\n d: dValue\n }), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: -halfStrokeWidth,\n y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n width: width + strokeWidth,\n height: width\n })));\n});\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n var _map$get2;\n map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nfunction useFloatingNodeId(customParentId) {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null ? void 0 : tree.addNode(node);\n return () => {\n tree == null ? void 0 : tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n}\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(_ref) {\n let {\n children,\n id\n } = _ref;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n}\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(_ref2) {\n let {\n children\n } = _ref2;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [nodesRef, addNode, removeNode, events])\n }, children);\n}\n\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\n\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\nfunction getWindow(value) {\n return getDocument(value).defaultView || window;\n}\nfunction isElement(value) {\n return value ? value instanceof getWindow(value).Element : false;\n}\nfunction isHTMLElement(value) {\n return value ? value instanceof getWindow(value).HTMLElement : false;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n const androidRe = /Android/i;\n if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\n\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = 'data-floating-ui-safe-polygon';\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements: {\n domReference,\n floating\n },\n refs\n } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef();\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When dismissing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss() {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled || !handleCloseRef.current || !open) {\n return;\n }\n function onLeave(event) {\n if (isHoverOpen()) {\n onOpenChange(false, event);\n }\n }\n const html = getDocument(floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (event, runElseBranch) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onOpenChange(false, event), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false, event);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = React.useCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n }, []);\n const clearPointerEvents = React.useCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(refs.floating.current).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n }, [refs]);\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n return;\n }\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(true, event);\n }, openDelay);\n } else {\n onOpenChange(true, event);\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(floating);\n clearTimeout(restTimeoutRef.current);\n if (handleCloseRef.current) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n // Should the event expose that it was closed by `safePolygon`?\n closeWithDelay(event);\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n\n // Allow interactivity without `safePolygon` on touch devices. With a\n // pointer, a short close delay is an alternative, so it should work\n // consistently.\n const shouldClose = pointerTypeRef.current === 'touch' ? !contains(floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay(event);\n }\n })(event);\n }\n if (isElement(domReference)) {\n const ref = domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) {\n return;\n }\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n const body = getDocument(floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n if (isElement(domReference) && floating) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const ref = domReference;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n ref.style.pointerEvents = 'auto';\n floating.style.pointerEvents = 'auto';\n return () => {\n ref.style.pointerEvents = '';\n floating.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, cleanupMouseMoveHandler, clearPointerEvents]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n reference: {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n if (open || restMs === 0) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n restTimeoutRef.current = setTimeout(() => {\n if (!blockMouseMoveRef.current) {\n onOpenChange(true, event.nativeEvent);\n }\n }, restMs);\n }\n },\n floating: {\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave(event) {\n events.emit('dismiss', {\n type: 'mouseLeave',\n data: {\n returnFocus: false\n }\n });\n closeWithDelay(event.nativeEvent, false);\n }\n }\n };\n }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n}\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: () => {},\n setState: () => {},\n isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n let {\n children,\n delay,\n timeoutMs = 0\n } = _ref;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n setState({\n isInstantPhase: false\n });\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setState, setCurrentId])\n }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n let {\n open,\n onOpenChange\n } = _ref2;\n let {\n id\n } = _ref3;\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = useDelayGroupContext();\n index(() => {\n if (currentId) {\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }\n }, [id, onOpenChange, setState, currentId, initialDelay]);\n index(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n } else {\n unset();\n }\n }\n }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n index(() => {\n if (open) {\n setCurrentId(id);\n }\n }, [open, setCurrentId, id]);\n};\n\n/**\n * Find the real active element. Traverses into shadowRoots.\n */\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n var _activeElement, _activeElement$shadow;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n });\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n });\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\n\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\n\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n event.target;\n clearTimeout(timeoutId);\n }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, {\n ref: ref,\n tabIndex: 0\n // Role is only for VoiceOver\n ,\n role: role,\n \"aria-hidden\": role ? undefined : true,\n \"data-floating-ui-focus-guard\": \"\",\n style: HIDDEN_STYLES\n }));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nfunction useFloatingPortalNode(_temp) {\n let {\n id,\n root\n } = _temp === void 0 ? {} : _temp;\n const [portalNode, setPortalNode] = React.useState(null);\n const uniqueId = useId();\n const portalContext = usePortalContext();\n const data = React.useMemo(() => ({\n id,\n root,\n portalContext,\n uniqueId\n }), [id, root, portalContext, uniqueId]);\n const dataRef = React.useRef();\n index(() => {\n return () => {\n portalNode == null ? void 0 : portalNode.remove();\n };\n }, [portalNode, data]);\n index(() => {\n if (dataRef.current === data) return;\n dataRef.current = data;\n const {\n id,\n root,\n portalContext,\n uniqueId\n } = data;\n const existingIdRoot = id ? document.getElementById(id) : null;\n const attr = 'data-floating-ui-portal';\n if (existingIdRoot) {\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n existingIdRoot.appendChild(subRoot);\n setPortalNode(subRoot);\n } else {\n let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n if (container && !isElement(container)) container = container.current;\n container = container || document.body;\n let idWrapper = null;\n if (id) {\n idWrapper = document.createElement('div');\n idWrapper.id = id;\n container.appendChild(idWrapper);\n }\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n container = idWrapper || container;\n container.appendChild(subRoot);\n setPortalNode(subRoot);\n }\n }, [data]);\n return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(_ref) {\n let {\n children,\n id,\n root = null,\n preserveTabOrder = true\n } = _ref;\n const portalNode = useFloatingPortalNode({\n id,\n root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal &&\n // Don't render if unmount is transitioning.\n focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null ? void 0 : prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), portalNode && /*#__PURE__*/createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null ? void 0 : nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent));\n }\n }\n }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n const {\n context,\n children,\n order = ['content'],\n guards = true,\n initialFocus = 0,\n returnFocus = true,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = props;\n const {\n open,\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n const orderRef = useLatestRef(order);\n const initialFocusRef = useLatestRef(initialFocus);\n const returnFocusRef = useLatestRef(returnFocus);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n\n // Controlled by `useListNavigation`.\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const previouslyFocusedElementRef = React.useRef(null);\n const isPointerDownRef = React.useRef(false);\n const isInsidePortal = portalContext != null;\n\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference);\n const getTabbableContent = React.useCallback(function (container) {\n if (container === void 0) {\n container = floating;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n }, [floating]);\n const getTabbableElements = React.useCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floating && type === 'floating') {\n return floating;\n }\n return content;\n }).filter(Boolean).flat();\n }, [domReference, floating, orderRef, getTabbableContent]);\n React.useEffect(() => {\n if (!modal) {\n return;\n }\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains(floating, activeElement(getDocument(floating))) && getTabbableContent().length === 0 && !isTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floating);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [domReference, floating, modal, orderRef, refs, isTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (!closeOnFocusOut) {\n return;\n }\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n queueMicrotask(() => {\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute('data-floating-ui-focus-guard') || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== previouslyFocusedElementRef.current) {\n preventReturnFocusRef.current = true;\n onOpenChange(false, event);\n }\n });\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n !modal && floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n !modal && floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n React.useEffect(() => {\n var _portalContext$portal;\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll('[data-floating-ui-portal]')) || []);\n function getDismissButtons() {\n return [startDismissButtonRef.current, endDismissButtonRef.current].filter(Boolean);\n }\n if (floating && modal) {\n const insideNodes = [floating, ...portalNodes, ...getDismissButtons()];\n const cleanup = hideOthers(orderRef.current.includes('reference') || isTypeableCombobox ? insideNodes.concat(domReference || []) : insideNodes);\n return () => {\n cleanup();\n };\n }\n }, [domReference, floating, modal, orderRef, portalContext, isTypeableCombobox]);\n React.useEffect(() => {\n if (modal && !guards && floating) {\n const tabIndexValues = [];\n const options = getTabbableOptions();\n const allTabbable = tabbable(getDocument(floating).body, options);\n const floatingTabbable = getTabbableElements();\n\n // Exclude all tabbable elements that are part of the order\n const elements = allTabbable.filter(el => !floatingTabbable.includes(el));\n elements.forEach((el, i) => {\n tabIndexValues[i] = el.getAttribute('tabindex');\n el.setAttribute('tabindex', '-1');\n });\n return () => {\n elements.forEach((el, i) => {\n const value = tabIndexValues[i];\n if (value == null) {\n el.removeAttribute('tabindex');\n } else {\n el.setAttribute('tabindex', value);\n }\n });\n };\n }\n }, [floating, modal, guards, getTabbableElements]);\n index(() => {\n if (!floating) return;\n const doc = getDocument(floating);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const focusableElements = getTabbableElements(floating);\n const initialFocusValue = initialFocusRef.current;\n const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floating;\n const focusAlreadyInsideFloatingEl = contains(floating, previouslyFocusedElement);\n if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floating\n });\n }\n });\n }, [open, floating, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n index(() => {\n if (!floating) return;\n let preventReturnFocusScroll = false;\n const doc = getDocument(floating);\n const previouslyFocusedElement = activeElement(doc);\n const contextData = dataRef.current;\n previouslyFocusedElementRef.current = previouslyFocusedElement;\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onDismiss(payload) {\n if (payload.type === 'escapeKey' && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (['referencePress', 'escapeKey'].includes(payload.type)) {\n return;\n }\n const returnFocus = payload.data.returnFocus;\n if (typeof returnFocus === 'object') {\n preventReturnFocusRef.current = false;\n preventReturnFocusScroll = returnFocus.preventScroll;\n } else {\n preventReturnFocusRef.current = !returnFocus;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n const activeEl = activeElement(doc);\n const shouldFocusReference = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context5;\n return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n }) || contextData.openEvent && ['click', 'mousedown'].includes(contextData.openEvent.type);\n if (shouldFocusReference && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n returnFocusRef.current && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n enqueueFocus(previouslyFocusedElementRef.current, {\n // When dismissing nested floating elements, by the time the rAF has\n // executed, the menus will all have been unmounted. When they try\n // to get focused, the calls get ignored — leaving the root\n // reference focused as desired.\n cancelPrevious: false,\n preventScroll: preventReturnFocusScroll\n });\n }\n };\n }, [floating, returnFocusRef, dataRef, refs, events, tree, nodeId]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n ...context,\n modal,\n closeOnFocusOut,\n open\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [portalContext, modal, open, closeOnFocusOut, context]);\n index(() => {\n if (floating && typeof MutationObserver === 'function') {\n const handleMutation = () => {\n const tabIndex = floating.getAttribute('tabindex');\n if (orderRef.current.includes('floating') || activeElement(getDocument(floating)) !== refs.domReference.current && getTabbableContent().length === 0) {\n if (tabIndex !== '0') {\n floating.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1') {\n floating.setAttribute('tabindex', '-1');\n }\n };\n handleMutation();\n const observer = new MutationObserver(handleMutation);\n observer.observe(floating, {\n childList: true,\n subtree: true,\n attributes: true\n });\n return () => {\n observer.disconnect();\n };\n }\n }, [floating, refs, orderRef, getTabbableContent]);\n function renderDismissButton(location) {\n return visuallyHiddenDismiss && modal ? /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: event => onOpenChange(false, event.nativeEvent)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss') : null;\n }\n const shouldRenderGuards = guards && !isTypeableCombobox && (isInsidePortal || modal);\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null ? void 0 : nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n }\n }\n }\n }), !isTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null ? void 0 : prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction areMapsEqual(map1, map2) {\n if (map1.size !== map2.size) {\n return false;\n }\n for (const [key, value] of map1.entries()) {\n if (value !== map2.get(key)) {\n return false;\n }\n }\n return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n map: /*#__PURE__*/new Map(),\n elementsRef: {\n current: []\n }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(_ref) {\n let {\n children,\n elementsRef,\n labelsRef\n } = _ref;\n const [map, setMap] = React.useState(() => new Map());\n const register = React.useCallback(node => {\n setMap(prevMap => new Map(prevMap).set(node, null));\n }, []);\n const unregister = React.useCallback(node => {\n setMap(prevMap => {\n const map = new Map(prevMap);\n map.delete(node);\n return map;\n });\n }, []);\n index(() => {\n const newMap = new Map(map);\n const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n nodes.forEach((node, index) => {\n newMap.set(node, index);\n });\n if (!areMapsEqual(map, newMap)) {\n setMap(newMap);\n }\n }, [map]);\n return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n value: React.useMemo(() => ({\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n }), [register, unregister, map, elementsRef, labelsRef])\n }, children);\n}\nfunction useListItem(_temp) {\n let {\n label\n } = _temp === void 0 ? {} : _temp;\n const [index$1, setIndex] = React.useState(null);\n const componentRef = React.useRef(null);\n const {\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n } = React.useContext(FloatingListContext);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index$1 !== null) {\n elementsRef.current[index$1] = node;\n if (labelsRef) {\n var _node$textContent;\n const isLabelDefined = label !== undefined;\n labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n }\n }\n }, [index$1, elementsRef, labelsRef, label]);\n index(() => {\n const node = componentRef.current;\n if (node) {\n register(node);\n return () => {\n unregister(node);\n };\n }\n }, [register, unregister]);\n index(() => {\n const index = componentRef.current ? map.get(componentRef.current) : null;\n if (index != null) {\n setIndex(index);\n }\n }, [map]);\n return React.useMemo(() => ({\n ref,\n index: index$1 == null ? -1 : index$1\n }), [index$1, ref]);\n}\n\nconst identifier = 'data-floating-ui-scroll-lock';\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n let {\n lockScroll = false,\n ...rest\n } = _ref;\n index(() => {\n var _window$visualViewpor, _window$visualViewpor2;\n if (!lockScroll) {\n return;\n }\n const alreadyLocked = document.body.hasAttribute(identifier);\n if (alreadyLocked) {\n return;\n }\n document.body.setAttribute(identifier, '');\n\n // RTL <body> scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (!/iP(hone|ad|od)|iOS/.test(getPlatform())) {\n Object.assign(document.body.style, {\n overflow: 'hidden',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n document.body.removeAttribute(identifier);\n Object.assign(document.body.style, {\n overflow: '',\n [paddingProp]: ''\n });\n };\n }\n\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n const scrollX = window.pageXOffset;\n const scrollY = window.pageYOffset;\n Object.assign(document.body.style, {\n position: 'fixed',\n overflow: 'hidden',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n Object.assign(document.body.style, {\n position: '',\n overflow: '',\n top: '',\n left: '',\n right: '',\n [paddingProp]: ''\n });\n document.body.removeAttribute(identifier);\n window.scrollTo(scrollX, scrollY);\n };\n }, [lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = context;\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true\n } = props;\n const pointerTypeRef = React.useRef();\n const didKeyDownRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) return {};\n return {\n reference: {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) {\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (eventOption === 'click') {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false, event.nativeEvent);\n }\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true, event.nativeEvent);\n }\n },\n onClick(event) {\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false, event.nativeEvent);\n }\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n didKeyDownRef.current = true;\n }\n if (event.key === 'Enter') {\n if (open) {\n if (toggle) {\n onOpenChange(false, event.nativeEvent);\n }\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ' && didKeyDownRef.current) {\n didKeyDownRef.current = false;\n if (open) {\n if (toggle) {\n onOpenChange(false, event.nativeEvent);\n }\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n }\n }\n };\n }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nfunction createVirtualElement(domRef, data) {\n let offsetX = null;\n let offsetY = null;\n let isAutoUpdateEvent = false;\n return {\n contextElement: domRef.current || undefined,\n getBoundingClientRect() {\n var _domRef$current, _data$dataRef$current;\n const domRect = ((_domRef$current = domRef.current) == null ? void 0 : _domRef$current.getBoundingClientRect()) || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n const isXAxis = data.axis === 'x' || data.axis === 'both';\n const isYAxis = data.axis === 'y' || data.axis === 'both';\n const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n let width = domRect.width;\n let height = domRect.height;\n let x = domRect.x;\n let y = domRect.y;\n if (offsetX == null && data.x && isXAxis) {\n offsetX = domRect.x - data.x;\n }\n if (offsetY == null && data.y && isYAxis) {\n offsetY = domRect.y - data.y;\n }\n x -= offsetX || 0;\n y -= offsetY || 0;\n width = 0;\n height = 0;\n if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n width = data.axis === 'y' ? domRect.width : 0;\n height = data.axis === 'x' ? domRect.height : 0;\n x = isXAxis && data.x != null ? data.x : x;\n y = isYAxis && data.y != null ? data.y : y;\n } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n height = data.axis === 'x' ? domRect.height : height;\n width = data.axis === 'y' ? domRect.width : width;\n }\n isAutoUpdateEvent = true;\n return {\n width,\n height,\n x,\n y,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n }\n };\n}\nfunction isMouseBasedEvent(event) {\n return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n refs,\n dataRef,\n elements: {\n floating\n }\n } = context;\n const {\n enabled = true,\n axis = 'both',\n x = null,\n y = null\n } = props;\n const initialRef = React.useRef(false);\n const cleanupListenerRef = React.useRef(null);\n const [pointerType, setPointerType] = React.useState();\n const [reactive, setReactive] = React.useState([]);\n const setReference = useEffectEvent((x, y) => {\n if (initialRef.current) return;\n\n // Prevent setting if the open event was not a mouse-like one\n // (e.g. focus to open, then hover over the reference element).\n // Only apply if the event exists.\n if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n return;\n }\n refs.setPositionReference(createVirtualElement(refs.domReference, {\n x,\n y,\n axis,\n dataRef,\n pointerType\n }));\n });\n const handleReferenceEnterOrMove = useEffectEvent(event => {\n if (x != null || y != null) return;\n if (!open) {\n setReference(event.clientX, event.clientY);\n } else if (!cleanupListenerRef.current) {\n // If there's no cleanup, there's no listener, but we want to ensure\n // we add the listener if the cursor landed on the floating element and\n // then back on the reference (i.e. it's interactive).\n setReactive([]);\n }\n });\n\n // If the pointer is a mouse-like pointer, we want to continue following the\n // mouse even if the floating element is transitioning out. On touch\n // devices, this is undesirable because the floating element will move to\n // the dismissal touch point.\n const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n const addListener = React.useCallback(() => {\n // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n if (!openCheck || !enabled || x != null || y != null) return;\n const win = getWindow(refs.floating.current);\n function handleMouseMove(event) {\n const target = getTarget(event);\n if (!contains(refs.floating.current, target)) {\n setReference(event.clientX, event.clientY);\n } else {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n }\n }\n if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n win.addEventListener('mousemove', handleMouseMove);\n const cleanup = () => {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n };\n cleanupListenerRef.current = cleanup;\n return cleanup;\n }\n refs.setPositionReference(refs.domReference.current);\n }, [dataRef, enabled, openCheck, refs, setReference, x, y]);\n React.useEffect(() => {\n return addListener();\n }, [addListener, reactive]);\n React.useEffect(() => {\n if (enabled && !floating) {\n initialRef.current = false;\n }\n }, [enabled, floating]);\n React.useEffect(() => {\n if (!enabled && open) {\n initialRef.current = true;\n }\n }, [enabled, open]);\n index(() => {\n if (enabled && (x != null || y != null)) {\n initialRef.current = false;\n setReference(x, y);\n }\n }, [enabled, x, y, setReference]);\n return React.useMemo(() => {\n if (!enabled) return {};\n function setPointerTypeRef(_ref) {\n let {\n pointerType\n } = _ref;\n setPointerType(pointerType);\n }\n return {\n reference: {\n onPointerDown: setPointerTypeRef,\n onPointerEnter: setPointerTypeRef,\n onMouseMove: handleReferenceEnterOrMove,\n onMouseEnter: handleReferenceEnterOrMove\n }\n };\n }, [enabled, handleReferenceEnterOrMove]);\n}\n\n/**\n * Check whether the event.target is within the provided node. Uses event.composedPath if available for custom element support.\n *\n * @param event The event whose target/composedPath to check\n * @param node The node to check against\n * @returns Whether the event.target/composedPath is within the node.\n */\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeBubblesProp = bubbles => {\n var _bubbles$escapeKey, _bubbles$outsidePress;\n return {\n escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles == null ? void 0 : bubbles.escapeKey) != null ? _bubbles$escapeKey : false,\n outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles == null ? void 0 : bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n events,\n nodeId,\n elements: {\n reference,\n domReference,\n floating\n },\n dataRef\n } = context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles\n } = props;\n const tree = useFloatingTree();\n const nested = useFloatingParentNodeId() != null;\n const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const {\n escapeKeyBubbles,\n outsidePressBubbles\n } = normalizeBubblesProp(bubbles);\n const closeOnEscapeKeyDown = useEffectEvent(event => {\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n event.stopPropagation();\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n events.emit('dismiss', {\n type: 'escapeKey',\n data: {\n returnFocus: {\n preventScroll: false\n }\n }\n });\n onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event);\n });\n const closeOnPressOutside = useEffectEvent(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n // elements.\n const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = getWindow(floating).getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'outsidePress',\n data: {\n returnFocus: nested ? {\n preventScroll: true\n } : isVirtualClick(event) || isVirtualPointerEvent(event)\n }\n });\n onOpenChange(false, event);\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n function onScroll(event) {\n onOpenChange(false, event);\n }\n const doc = getDocument(floating);\n escapeKey && doc.addEventListener('keydown', closeOnEscapeKeyDown);\n outsidePress && doc.addEventListener(outsidePressEvent, closeOnPressOutside);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(domReference)) {\n ancestors = getOverflowAncestors(domReference);\n }\n if (isElement(floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(floating));\n }\n if (!isElement(reference) && reference && reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n escapeKey && doc.removeEventListener('keydown', closeOnEscapeKeyDown);\n outsidePress && doc.removeEventListener(outsidePressEvent, closeOnPressOutside);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n };\n }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, closeOnPressOutside]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onKeyDown: closeOnEscapeKeyDown,\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n if (referencePress) {\n events.emit('dismiss', {\n type: 'referencePress',\n data: {\n returnFocus: false\n }\n });\n onOpenChange(false, event.nativeEvent);\n }\n }\n },\n floating: {\n onKeyDown: closeOnEscapeKeyDown,\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }\n };\n }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange, closeOnEscapeKeyDown]);\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n var _options$elements;\n if (options === void 0) {\n options = {};\n }\n const {\n open = false,\n onOpenChange: unstable_onOpenChange,\n nodeId\n } = options;\n const [_domReference, setDomReference] = React.useState(null);\n const domReference = ((_options$elements = options.elements) == null ? void 0 : _options$elements.reference) || _domReference;\n const position = useFloating$1(options);\n const tree = useFloatingTree();\n const onOpenChange = useEffectEvent((open, event) => {\n if (open) {\n dataRef.current.openEvent = event;\n }\n unstable_onOpenChange == null ? void 0 : unstable_onOpenChange(open, event);\n });\n const domReferenceRef = React.useRef(null);\n const dataRef = React.useRef({});\n const events = React.useState(() => createPubSub())[0];\n const floatingId = useId();\n const setPositionReference = React.useCallback(node => {\n const positionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n position.refs.setReference(positionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const context = React.useMemo(() => ({\n ...position,\n refs,\n elements,\n dataRef,\n nodeId,\n floatingId,\n events,\n open,\n onOpenChange\n }), [position, nodeId, floatingId, events, open, onOpenChange, refs, elements]);\n index(() => {\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n elements\n }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n refs,\n elements: {\n floating,\n domReference\n }\n } = context;\n const {\n enabled = true,\n keyboardOnly = true\n } = props;\n const pointerTypeRef = React.useRef('');\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const doc = getDocument(floating);\n const win = doc.defaultView || window;\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(domReference) && domReference === activeElement(getDocument(domReference))) {\n blockFocusRef.current = true;\n }\n }\n win.addEventListener('blur', onBlur);\n return () => {\n win.removeEventListener('blur', onBlur);\n };\n }, [floating, domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss(payload) {\n if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n blockFocusRef.current = true;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(_ref) {\n let {\n pointerType\n } = _ref;\n pointerTypeRef.current = pointerType;\n blockFocusRef.current = !!(pointerType && keyboardOnly);\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n var _dataRef$current$open;\n if (blockFocusRef.current) {\n return;\n }\n\n // Dismiss with click should ignore the subsequent `focus` trigger,\n // but only if the click originated inside the reference element.\n if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n return;\n }\n onOpenChange(true, event.nativeEvent);\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute('data-floating-ui-focus-guard') && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = setTimeout(() => {\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false, event.nativeEvent);\n });\n }\n }\n };\n }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1\n }),\n ...userProps,\n ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\n\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/react#interaction-hooks\n */\nfunction useInteractions(propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n // The dependencies are a dynamic array, so we can't use the linter's\n // suggestion to add it to the deps array.\n const deps = propsList;\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // Granularly check for `item` changes, because the `getItemProps` getter\n // should be as referentially stable as possible since it may be passed as\n // a prop to many components. All `item` key values must therefore be\n // memoized.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n propsList.map(key => key == null ? void 0 : key.item));\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n var _list$index, _list$index2;\n index = index + (decrement ? -amount : amount);\n } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n return index;\n}\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n const {\n open,\n onOpenChange,\n refs,\n elements: {\n domReference,\n floating\n }\n } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n }\n if (!virtual) {\n console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n }\n }\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEffectEvent(unstable_onNavigate);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!floating);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const [activeId, setActiveId] = React.useState();\n const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n const item = listRef.current[indexRef.current];\n if (!item) return;\n if (virtual) {\n setActiveId(item.id);\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n requestAnimationFrame(() => {\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n });\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open && floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate(selectedIndex);\n }\n } else if (previousMountedRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, floating, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open && floating) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndex != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if (!previousMountedRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n // Avoid letting the browser paint if possible on the first try,\n // otherwise use rAF. Don't try more than twice, since something\n // is wrong otherwise.\n if (runs < 2) {\n const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate(indexRef.current);\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, floating, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n if (!enabled) {\n return;\n }\n if (previousMountedRef.current && !floating && tree) {\n var _nodes$find, _nodes$find$context;\n const nodes = tree.nodesRef.current;\n const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null ? void 0 : (_nodes$find$context = _nodes$find.context) == null ? void 0 : _nodes$find$context.elements.floating;\n const activeEl = activeElement(getDocument(floating));\n const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n if (parent && !treeContainsActiveEl) {\n parent.focus({\n preventScroll: true\n });\n }\n }\n }, [enabled, floating, tree, parentId]);\n index(() => {\n previousOnNavigateRef.current = onNavigate;\n previousMountedRef.current = !!floating;\n });\n index(() => {\n if (!open) {\n keyRef.current = null;\n }\n }, [open]);\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref) {\n let {\n currentTarget\n } = _ref;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref2 => {\n let {\n currentTarget\n } = _ref2;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref3) {\n let {\n currentTarget\n } = _ref3;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave(_ref4) {\n let {\n pointerType\n } = _ref4;\n if (!isPointerModalityRef.current || pointerType === 'touch') {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n onNavigate(null);\n if (!virtual) {\n enqueueFocus(refs.floating.current, {\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n const disabledIndices = disabledIndicesRef.current;\n function onKeyDown(event) {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false, event.nativeEvent);\n if (isHTMLElement(domReference)) {\n domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n\n // Grid navigation.\n if (cols > 1) {\n const prevIndex = indexRef.current;\n if (event.key === ARROW_UP) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || indexRef.current < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n if (event.key === ARROW_DOWN) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = minIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = Math.floor(prevIndex / cols);\n if (event.key === ARROW_RIGHT) {\n stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n if (event.key === ARROW_LEFT) {\n stopEvent(event);\n if (prevIndex % cols !== 0) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices,\n decrement: true\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n const lastRow = Math.floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n if (loop && lastRow) {\n indexRef.current = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n indexRef.current = prevIndex;\n }\n }\n onNavigate(indexRef.current);\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n }\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n 'aria-activedescendant': activeId\n };\n return {\n reference: {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.indexOf('Arrow') === 0;\n if (virtual && open) {\n return onKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n const isNavigationKey = isArrowKey || event.key === 'Enter' || event.key.trim() === '';\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isCrossKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n if (isNavigationKey) {\n keyRef.current = nested && isMainKey ? null : event.key;\n }\n if (nested) {\n if (isCrossKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndices);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent);\n } else {\n onKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n },\n floating: {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...ariaActiveDescendantProp,\n onKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n },\n item\n };\n }, [domReference, refs, activeId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item]);\n}\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n floatingId\n } = context;\n const {\n enabled = true,\n role = 'dialog'\n } = props;\n const referenceId = useId();\n return React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n role\n };\n if (!enabled) {\n return {};\n }\n if (role === 'tooltip') {\n return {\n reference: {\n 'aria-describedby': open ? floatingId : undefined\n },\n floating: floatingProps\n };\n }\n return {\n reference: {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n 'aria-controls': open ? floatingId : undefined,\n ...(role === 'listbox' && {\n role: 'combobox'\n }),\n ...(role === 'menu' && {\n id: referenceId\n })\n },\n floating: {\n ...floatingProps,\n ...(role === 'menu' && {\n 'aria-labelledby': referenceId\n })\n }\n };\n }, [enabled, role, open, floatingId, referenceId]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n elements: {\n floating\n }\n } = context;\n const {\n duration = 250\n } = props;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [initiated, setInitiated] = React.useState(false);\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n\n // `initiated` check prevents this `setState` call from breaking\n // <FloatingPortal />. This call is necessary to ensure subsequent opens\n // after the initial one allows the correct side animation to play when the\n // placement has changed.\n index(() => {\n if (initiated && !isMounted) {\n setStatus('unmounted');\n }\n }, [initiated, isMounted]);\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n } else {\n setInitiated(true);\n setStatus('close');\n }\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = props;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const fnArgs = React.useMemo(() => ({\n side,\n placement\n }), [side, placement]);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [styles, setStyles] = React.useState(() => ({\n ...execWithArgsOrReturn(unstable_common, fnArgs),\n ...execWithArgsOrReturn(unstable_initial, fnArgs)\n }));\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n index(() => {\n const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n var _ref;\n const {\n open,\n dataRef\n } = context;\n const {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch,\n onTypingChange: unstable_onTypingChange,\n enabled = true,\n findMatch = null,\n resetMs = 750,\n ignoreKeys = [],\n selectedIndex = null\n } = props;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEffectEvent(unstable_onMatch);\n const onTypingChange = useEffectEvent(unstable_onTypingChange);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref2;\n prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setTypingChange(value) {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else {\n if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n }\n }\n function getMatchingIndex(list, orderedList, string) {\n const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n return str ? list.indexOf(str) : -1;\n }\n function onKeyDown(event) {\n const listContent = listRef.current;\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n setTypingChange(false);\n } else if (event.key === ' ') {\n stopEvent(event);\n }\n }\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== ' ') {\n stopEvent(event);\n setTypingChange(true);\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n } else if (event.key !== ' ') {\n stringRef.current = '';\n setTypingChange(false);\n }\n }\n return {\n reference: {\n onKeyDown\n },\n floating: {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === ' ') {\n setTypingChange(false);\n }\n }\n }\n };\n }, [enabled, open, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, onTypingChange]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = props;\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n flushSync(() => onFallbackChange(true));\n } else {\n flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n const {\n open,\n elements\n } = context;\n const {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = props;\n const onChange = useEffectEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n floating: {\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }\n };\n }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safePolygon\n */\nfunction safePolygon(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true\n } = options;\n let timeoutId;\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = performance.now();\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime; // px / ms\n\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n break;\n case 'bottom':\n rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n break;\n case 'left':\n rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n } else if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n return close();\n }\n }\n if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n close();\n } else if (!hasLanded && requireIntent) {\n timeoutId = window.setTimeout(close, 40);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\nexport { FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import * as React from \"react\"\nimport { forwardRef, useEffect, useRef, useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\"\nimport Popper from \"../Popper\"\n\nconst Tooltip = forwardRef((props, ref) => {\n const {\n content,\n onOpen,\n onClose,\n onChange,\n open: controlledOpen,\n children,\n cursor,\n toggleMethod,\n withArrow,\n placement,\n ...popper\n } = props\n const [isOpen, setOpen] = useState(!!controlledOpen)\n const arrowRef = useRef(null)\n\n const handleOpen = () => {\n if (toggleMethod !== \"click\") {\n setOpen(true)\n if (onOpen) onOpen()\n }\n }\n\n const handleClose = () => {\n if (toggleMethod !== \"click\") {\n setOpen(false)\n if (onClose) onClose()\n }\n }\n\n const {\n refs,\n floatingStyles,\n context,\n middlewareData,\n placement: realPlacement,\n } = useFloating({\n open: isOpen,\n onOpenChange: setOpen,\n middleware: [\n offset(),\n flip(),\n shift({ padding: 6 }),\n ...(withArrow\n ? [\n arrow({\n element: arrowRef,\n }),\n ]\n : []),\n ],\n placement,\n whileElementsMounted: autoUpdate,\n })\n\n const click = useClick(context)\n const dismiss = useDismiss(context)\n const role = useRole(context)\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n dismiss,\n role,\n ...(toggleMethod === \"click\" ? [click] : []),\n ])\n\n useEffect(() => {\n setOpen(!!controlledOpen)\n }, [controlledOpen])\n\n useEffect(() => {\n if (onChange) onChange(!!isOpen)\n }, [isOpen])\n\n return (\n <StyledWrapper onMouseLeave={handleClose} ref={ref}>\n <StyledContentWrapper\n onMouseEnter={handleOpen}\n ref={refs.setReference}\n cursor={cursor}\n {...getReferenceProps()}\n >\n <StyledContent>{children}</StyledContent>\n </StyledContentWrapper>\n <Popper\n open={isOpen}\n {...popper}\n ref={refs.setFloating}\n arrowRef={arrowRef}\n style={floatingStyles}\n withArrow={withArrow}\n arrowPosition={middlewareData.arrow}\n realPlacement={realPlacement}\n {...getFloatingProps()}\n >\n {content}\n </Popper>\n </StyledWrapper>\n )\n})\n\nexport default Tooltip\n\nconst containerCSS = css`\n display: inline-flex;\n width: fit-content;\n height: fit-content;\n`\n\nconst StyledWrapper = styled.div`\n ${containerCSS};\n position: relative;\n`\n\nconst StyledContentWrapper = styled.div`\n ${containerCSS};\n cursor: ${({ cursor }) => cursor};\n z-index: 1;\n`\n\nconst StyledContent = styled.div`\n ${containerCSS};\n z-index: -1;\n`\n","import React from \"react\"\r\nimport styled from \"@emotion/styled\"\r\nimport Container from \"../Container\"\r\nimport Caption from \"../Caption\"\r\nimport { theme } from \"../../theme\"\r\n\r\nconst ErrorComponent = ({ message, icon, ...otherProps }) => (\r\n <Container {...otherProps}>\r\n <StyledTitle>{message}</StyledTitle>\r\n <StyledIconWrapper>{icon}</StyledIconWrapper>\r\n </Container>\r\n)\r\n\r\nexport default ErrorComponent\r\n\r\nconst StyledTitle = styled(Caption)`\r\n font-size: 24px;\r\n line-height: 32px;\r\n margin: 104px auto 16px;\r\n text-align: center;\r\n max-width: 530px;\r\n @media (max-width: ${theme.breakpoints.sm}px) {\r\n font-size: 16px;\r\n line-height: 24px;\r\n }\r\n`\r\n\r\nconst StyledIconWrapper = styled.div`\r\n svg {\r\n width: 100%;\r\n height: auto;\r\n min-height: 200px;\r\n max-height: calc(100vh - 200px);\r\n }\r\n`\r\n"],"names":["colors","primary","main","pressed","hover","light","light2","secondary","gray60","gray50","gray40","gray30","gray15","white","disabled","background","light3","success","green70","green60","green10","green5","error","red70","red60","red10","red5","info","blue70","blue60","blue10","blue5","purple","purple70","purple60","purple10","purple5","shadows","shadow1","shadow2","shadow3","shadow4","breakpoints","xxs","xs","sm","md","lg","xl","settings","spacing","columns","themeOld","palette","theme","brand","_objectSpread","grey","seventy","sixty","fiftyP","fourty","thirty","fifteenB","zero","light1","light4","green","ten","five","red","blue","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","window","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","type","A","process","env","NODE_ENV","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","object","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","isAsyncMode","console","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","require$$0","require$$1","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","objectAssign","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","map","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","val","TypeError","toObject","s","has","Function","bind","printWarning","ReactPropTypesSecret","loggedTypeFailures","text","message","Error","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","name","ex","stack","resetWarningCache","emptyFunctionThatReturnsNull","emptyFunction","emptyFunctionWithReset","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","number","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","props","propName","propFullName","PropTypeError","propValue","getPropType","element","elementType","ReactIs","instanceOf","expectedClass","expectedClassName","constructor","node","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","JSON","stringify","value","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","this","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","step","entries","next","done","entry","RegExp","isSymbol","Date","PropTypes","shim","getShim","require$$2","headingSizes","hero","h1","h2","h3","h4","headingVariants","size","height","mobSize","mobHeight","Heading","forwardRef","ref","children","className","otherProps","_excluded","_jsx","StyledHeading","as","defaultProps","color","colorGroup","disableUserSelect","weight","propTypes","headingSettingsCSS","css","align","_styled","label","captionSizes","high","Caption","StyledCaption","variant","displayName","captionSettingsCSS","_ref","disSelect","textVariants","Text","StyledText","textSettingsCSS","buttonSizes","buttonBorders","lightGray","lightOrange","buttonVariants","active","orange","hoverColor","border","whiteWithOrangeHover","whiteWithGray","whiteWithBrand","grayLightWithBorder","grayLight","grayDark","backgroundLight","backgroundWithBorder","blur","backdrop","blurDark","transparent","withoutShadow","orangeWithHoverLight","orangeWithBorder","transparentLight","transparentWithBorder","transparentWithDarkBorder","transparentWithBoldBorder","Button","fullWidth","isCircle","captionSize","disabledStyle","startIcon","endIcon","captionWeight","withoutChildrenWrapper","buttonProps","StyledButton","StyledCircleButtonContainer","_jsxs","StyledContentContainer","withIcon","StyledStartIcon","StyledEndIcon","circleButtonCSS","_ref2","buttonSettingsCSS","buttonVariantCSS","concat","styles","_EMOTION_STRINGIFIED_CSS_ERROR__","iconContainerCSS","_ref3","ErrorIcon","width","viewBox","fill","xmlns","fillRule","clipRule","WarningIcon","SuccessIcon","messageVariants","icon","warning","InputMessage","_messageRef$current2","msg","messageRef","useRef","_useState2","_slicedToArray","useState","messageRefHeight","setMessageRefHeight","useEffect","_messageRef$current","current","clientHeight","StyledMessage","style","bottom","StyledIconWrapper","StyledTitle","messageVariantCSS","TextareaGrabIcon","Input","isTextArea","inputRefProp","inputRef","inputStyles","labelStyles","messageClassName","labelInlineStyles","messageVariant","inputValue","rows","placeholder","inputProps","isFilled","setIsFilled","_useState4","isInvalid","autoHeight","scrollHeight","_inputRef$current","commonProps","elem","onInput","withMessage","withLabel","StyledContainer","StyledTextarea","StyledInput","StyledInputLabel","StyledTextareaIcon","labelActiveCSS","inputStates","inputCSS","inputStateCSS","InputWithAdornments","_startIconRef$current2","_endIconRef$current2","cornerLabel","startIconRef","endIconRef","startIconWidth","setStartIconWidth","endIconWidth","setEndIconWidth","inputStyle","paddingLeft","paddingRight","labelStyle","left","_startIconRef$current","clientWidth","_endIconRef$current","isCornerLabel","StyledCornerLabel","errorMessage","cornerLabelCSS","StyledIcon","React","_interopDefault","_extends","_inheritsLoose","create","getOwnPropertyDescriptor","configurable","undefined","defineProperty","_defaults2","_assertThisInitialized","ReferenceError","invariant_1","o","replace","framesToPop","setInputSelection","selectionStart","selectionEnd","createTextRange","collapse","moveStart","moveEnd","select","defaultFormatChars","parseMask","maskChar","formatChars","mask","prefix","lastEditablePosition","permanents","isPermanentCharacter","indexOf","isAllowedCharacter","test","isEmpty","getFilledLength","slice","formatValue","insertString","getRightEditablePosition","getStringValue","processChange","Math","min","start","end","getInsertStringLength","getLeftEditablePosition","max","splice","clearRange","enteredString","selection","isFunction","getCancelAnimationFrame","cancelAnimationFrame","webkitCancelRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","defer","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","setTimeout","cancelDefer","clearTimeout","InputElement","focused","mounted","previousSelection","selectionDeferId","saveSelectionLoopDeferId","saveSelectionLoop","getSelection","runSaveSelectionLoop","stopSaveSelectionLoop","getInputDOMNode","reactDom","findDOMNode","nodeName","querySelector","getInputValue","setInputValue","setCursorToEnd","maskOptions","setCursorPosition","setSelection","isFocused","deferred","abs","document","createRange","parentElement","getInputSelection","getCursorPosition","getBeforeMaskedValueChangeConfig","alwaysShowMask","isInputAutofilled","matches","onChange","beforePasteState","beforeMaskedValueChange","isWindowsPhoneBrowser","onFocus","onBlur","onMouseDown","addEventListener","mouseDownX","clientX","mouseDownY","clientY","mouseDownTime","getTime","removeEventListener","onPaste","defaultPrevented","handleRef","defaultValue","componentDidMount","navigator","userAgent","componentDidUpdate","forceUpdate","componentWillUnmount","render","_objectWithoutPropertiesLoose","filter","createElement","readOnly","cloneElement","Component","reactInputMask_production_min","condition","format","args","argIndex","len","warning_1","invariant","subClass","superClass","obj","defaults","self","input","range","parsedMaskString","isPermanent","character","pos","charRule","filledLength","insertStr","insertPosition","arrayInsertStr","isInputFilled","isUsableCharacter","insertCharacter","previousValue","newValue","formattedEnteredStringLength","removedLength","cursorPosition","initialInsertPosition","arrayValue","fn","deferId","reactInputMask_development","_React$Component","_this","isDOMNode","options","_this$maskOptions","event","changedState","newSelection","modifiedValue","_this$maskOptions2","emptyValue","isInputValueChanged","mouseUpHandler","mouseUpEvent","deltaX","deltaY","axisDelta","timeDelta","_mask","_maskChar","_formatChars","_alwaysShowMask","_beforeMaskedValueChange","_value","_newValue","oldValue","_proto","windows","phone","ua","_this$props","previousMaskOptions","showEmpty","hasValue","isMaskChanged","isValueChanged","isSelectionChanged","_this$props2","inputElement","restProps","excluded","sourceKeys","maxLength","controlledProps","childrenProps","propId","conflictProps","changedProps","InputWithMask","valueProp","other","setValue","InputMask","maskPlaceholder","_e$target$value","match","CountryItem","item","selectCountryIndex","countryIcon","useMemo","nameCode","toUpperCase","char","fromCodePoint","charCodeAt","StyledCountry","onClick","StyledCountryName","nameRus","StyledCountryPhone","phoneCode","SearchIcon","Dropdown","isOpen","setIsOpenDropDown","buttonRef","countries","filteredCountries","setFilteredCountries","dropdownRef","closePopUp","contains","StyledSearchWrapper","StyledSearch","StyledSearchInput","query","toLowerCase","StyledDropdown","HalfArrowIcon","InputWithCountryDropdown","onSelectCountry","hiddenInputProps","_objectWithoutProperties","selectedCountryCode","selectedCountryIndex","findIndex","country","selectedCountry","setSelectedCountry","isOpenDropdown","StyledDropdownWrapper","StyledPhoneCodeButton","StyledPhoneCodeIcon","isReverse","reduce","acc","index","display","Checkbox","checkboxProps","StyledLabel","StyledCheckbox","StyledCustomCheckbox","StyledCheckboxLabel","errorCSS","CloseIcon","Modal","handleClose","isScrollable","title","description","isHasHeader","modalRef","body","classList","add","remove","createPortal","Global","StyledModal","StyledHeaderWrapper","StyledModalTitle","StyledDescriptionWrapper","StyledDescription","StyledHeadingIconsWrapper","switchVariants","before","Switch","switchProps","StyledSwitch","StyledCustomSwitch","StyledSwitchLabel","switchVariantCSS","switchErrorCSS","Radio","radioProps","StyledRadio","StyledCustomRadio","StyledRadioLabel","FileIcon","InputFile","StyledWrapper","files","titleActiveCSS","Divider","StyledDivider","Container","Grid","container","StyledGrid","justify","alignItems","alignContent","direction","containerCSS","wrap","containerSpacingCSS","itemSizeCSS","_excluded2","_excluded3","Box","StyledBox","pt","pb","pr","pl","mt","mb","mr","ml","_ref4","_ref5","_ref6","_ref7","_ref8","Accordion","expanded","detailsBlock","_React$Children$toArr","Children","toArray","_React$Children$toArr2","summary","otherChildren","StyledAccordion","StyledCollapse","onTransitionEnd","AccordionSummary","defaultExpanded","expandIcon","contentStyles","expandedStyles","iconStyles","setExpanded","_detailsBlock$current","_detailsBlock$current2","getComputedStyle","getPropertyValue","StyledAccordionSummary","prev","StyledSummaryContent","StyledSummaryIcon","shouldForwardProp","prop","AccordionDetails","Skeleton","StyledSkeleton","waveAnim","keyframes","_templateObject","_taggedTemplateLiteral","AppBar","isFixed","StyledAppBar","fixesBarCSS","ToolBar","StyledTollBar","CircularProgress","svgStyles","circleStyles","StyledProgress","StyledSVG","StyledCircle","cx","cy","strokeWidth","rotateAnimate","circleAnimate","_templateObject2","LinearProgress","progressBarStyles","StyledLinearProgress","StyledLinearProgressBar","transform","nextItem","list","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","focus","Tabs","indicatorPos","indicatorHidden","childrenProp","tabListRef","indicatorStyles","setIndicatorStyles","child","childIndex","childValue","selected","_tabListRef$current","selectedTab","offsetLeft","StyledTabs","StyledTabList","tabIndex","role","onKeyDown","currFocus","ownerDocument","activeElement","preventDefault","StyledTabsIndicator","hidden","position","indicatorPositionsCSS","top","Tab","tabRef","StyledTab","id","TabsPanel","tabs","tabPanels","paths","activeTab","_React$useState2","Number","tabsRef","StyledTabsWrapper","_tabsRef$current","history","pushState","route","scrollTo","behavior","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","objectToString","nativeMax","nativeMin","now","debounce","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","toNumber","isObject","cancel","flush","isObjectLike","valueOf","isBinary","lodash_throttle","addPassiveEventListener","eventName","listener","supportsPassiveOption","opts","get","passive","removePassiveEventListener","_lodash2","_lodash","__esModule","scrollSpy","spyCallbacks","spySetState","scrollSpyContainers","mount","scrollSpyContainer","throttle","eventHandler","throttleAmount","eventThrottler","scrollHandler","_passiveEventListeners","isMounted","currentPositionX","supportPageOffset","pageYOffset","isCSS1Compat","compatMode","pageXOffset","documentElement","scrollLeft","currentPositionY","scrollTop","addStateHandler","handler","addSpyHandler","updateStates","unmount","stateHandler","spyHandler","update","getElementOffsetInfoUntil","predicate","offsetTop","currentOffsetParent","offsetParent","updateHash","hash","historyUpdate","hashVal","substring","hashToUpdate","curLoc","urlToPush","pathname","search","state","replaceState","getHash","filterElementInContainer","compareDocumentPosition","scrollOffset","horizontal","getBoundingClientRect","scrollX","scrollY","_getElementOffsetInfo","isDocument","defaultEasing","pow","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","events","subscribe","cancelEvent","Events","registered","scrollEvent","register","evtName","callback","_interopRequireDefault","_utils","_smooth2","_smooth","_cancelEvents2","_cancelEvents","_scrollEvents2","_scrollEvents","getAnimationType","smooth","requestAnimationFrameHelper","currentWindowProperties","delay","containerElement","animateScroll","easing","timestamp","ignoreCancelEvents","delta","round","targetPosition","startPosition","progress","percent","duration","currentPosition","ceil","easedAnimate","setContainer","containerId","getElementById","nodeType","animateTopScroll","delayTimeout","absolute","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","html","scrollContainerWidth","offsetHeight","scrollContainerHeight","toPosition","scrollMore","_utils2","_animateScroll2","_animateScroll","__mapped","__activeLink","unregister","getElementsByName","getElementsByClassName","setActiveLink","link","getActiveLink","offset","warn","scrollHash","mountFlag","initialized","scroller","containers","handleHashChange","initStateFromHash","mapContainer","isInitialized","isInit","changeHash","saveHashHistory","_createClass","defineProperties","descriptor","enumerable","writable","Constructor","protoProps","staticProps","_react2","_react","_scrollSpy2","_scrollSpy","_scroller2","_scroller","_propTypes2","_propTypes","_scrollHash2","_scrollHash","protoTypes","activeClass","activeStyle","spy","isDynamic","onSetActive","onSetInactive","hashSpy","spyThrottle","customScroller","Link","_React$PureComponent","instance","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","_initialiseProps","setPrototypeOf","_inherits","getScrollSpyContainer","setState","trim","handleClick","PureComponent","_this2","stopPropagation","isInside","isOutside","elemLeftBound","elemRightBound","containerLeft","cords","offsetX","floor","elemTopBound","elemBottomBound","containerTop","_cords","offsetY","activeLink","_props$saveHashHistor","_props$saveHashHistor2","_saveHashHistory","_scrollLink2","_scrollLink","LinkElement","_temp","_len","_key","ButtonElement","_reactDom","childBindings","domNode","registerElems","prevProps","parentBindings","_scrollElement2","_scrollElement","ElementWrapper","newProps","el","Helpers","Scroll","defaultScroller","_React$Component2","_this3","Helpers_1","ScrollLink","_Link2","_Link","_Button2","_Button","_Element2","_Element","_Helpers2","_Helpers","ScrollElement","ScrollTab","isScrolling","setIsScrolling","setIsIndicatorHidden","isActive","setIsActive","activeRef","scrollingRef","handleSelect","endScrolling","StyledScrollTab","MenuPanel","tabsId","isIndicatorHidden","_useState6","IconButton","Popper","open","withArrow","withoutMobile","arrowRef","arrowPosition","realPlacement","arrowPlacement","StyledPopperWrapper","StyledPopper","StyledArrow","getAlignment","placement","getLengthFromAxis","axis","getSide","getMainAxisFromPlacement","includes","computeCoordsFromPlacement","rtl","reference","floating","commonX","commonY","mainAxis","commonAlign","isVertical","coords","evaluate","param","getSideObjectFromPadding","padding","right","expandPaddingObject","rectToClientRect","rect","async","detectOverflow","_await$platform$isEle","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","contextElement","getDocumentElement","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","within","min$1","max$1","arrow","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","center","alignmentOffset","centerOffset","oppositeSideMap","getOppositePlacement","side","oppositeAlignmentMap","getOppositeAlignmentPlacement","alignment","flip","_middlewareData$flip","middlewareData","initialPlacement","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","detectOverflowOptions","isBasePlacement","isRTL","oppositePlacement","getExpandedPlacements","isStart","lr","rl","tb","bt","getSideList","getOppositeAxisPlacements","placements","overflow","overflows","overflowsData","cross","mainAlignmentSide","getAlignmentSides","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","reset","resetPlacement","sort","_overflowsData$map$so","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","alignmentAxis","convertValueToCoords","getWindow","_node$ownerDocument","defaultView","getComputedStyle$1","Node","getNodeName","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","isTableElement","isContainingBlock","safari","isSafari","perspective","backdropFilter","some","willChange","contain","CSS","supports","isLastTraversableNode","createEmptyCoords","getCssDimensions","hasOffset","shouldFallback","$","unwrapElement","domElement","isFinite","noOffsets","getVisualOffsets","floatingOffsetParent","_win$visualViewport","_win$visualViewport2","win","visualViewport","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentIFrame","frameElement","iframeScale","iframeRect","clientLeft","clientTop","paddingTop","getNodeScroll","getWindowScrollBarX","getParentNode","assignedSlot","parentNode","host","getNearestOverflowAncestor","getOverflowAncestors","scrollableAncestor","isBody","getClientRectFromClippingAncestor","clippingAncestor","visualViewportBased","getViewportRect","scroll","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getTrueOffsetParent","polyfill","currentNode","getContainingBlock","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","clippingAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","set","getClippingElementAncestors","_c","firstClippingAncestor","clippingRect","accRect","getOffsetParentFn","getDimensionsFn","getClientRects","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","cleanupIo","onMove","timeoutId","io","cleanup","disconnect","refresh","skip","threshold","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","ratio","intersectionRatio","rootMargin","observe","observeMove","frameId","resizeObserver","ResizeObserver","prevRefRect","frameLoop","nextRefRect","computePosition","Map","mergedOptions","platformWithCache","config","middleware","validMiddleware","Boolean","getElementRects","statefulPlacement","resetCount","nextX","nextY","computePosition$1","arrow$1","useLayoutEffect","deepEqual","getDPR","devicePixelRatio","roundByDPR","dpr","useLatestRef","serverHandoffComplete","count","genId","useId","setId","FloatingNodeContext","createContext","FloatingTreeContext","useFloatingTree","useContext","getDocument","isVirtualClick","mozInputSource","isTrusted","androidRe","uaData","userAgentData","getPlatform","brands","version","getUserAgent","pointerType","buttons","detail","isVirtualPointerEvent","pressure","isMouseLikePointerType","strict","getChildren","nodes","allChildren","_node$context","parentId","context","currentChildren","_currentChildren","_node$context2","TYPEABLE_SELECTOR","isButtonTarget","tagName","isSpaceIgnored","isTypeableElement","useSafeInsertionEffect","useEffectEvent","useCallback","isEventTargetWithin","composedPath","bubbleHandlerKeys","pointerdown","mousedown","click","captureHandlerKeys","useDismiss","onOpenChange","nodeId","domReference","dataRef","enabled","escapeKey","outsidePress","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","bubbles","tree","nested","_React$useContext","outsidePressFn","insideReactTreeRef","escapeKeyBubbles","outsidePressBubbles","_bubbles$escapeKey","_bubbles$outsidePress","normalizeBubblesProp","closeOnEscapeKeyDown","nodesRef","shouldDismiss","_child$context","__escapeKeyBubbles","emit","returnFocus","preventScroll","isReactEvent","nativeEvent","closeOnPressOutside","insideReactTree","getTarget","canScrollX","canScrollY","xCond","targetIsInsideChildren","_child$context2","__outsidePressBubbles","onScroll","doc","_doc$defaultView","useFloating","_options$elements","unstable_onOpenChange","_domReference","setDomReference","externalReference","externalFloating","whileElementsMounted","setData","isPositioned","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","whileElementsMountedRef","platformRef","then","fullData","isMountedRef","ReactDOM","flushSync","refs","floatingStyles","initialStyles","useFloating$1","openEvent","domReferenceRef","_map$get","on","off","_map$get2","createPubSub","floatingId","setPositionReference","positionReference","find","mergeProps","userProps","propsList","elementKey","Tooltip","content","onOpen","onClose","controlledOpen","cursor","toggleMethod","popper","setOpen","_useFloating","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","eventOption","toggle","ignoreMouse","keyboardHandlers","pointerTypeRef","didKeyDownRef","onPointerDown","button","onKeyUp","useClick","dismiss","referenceId","floatingProps","useRole","_useInteractions","deps","getReferenceProps","getFloatingProps","getItemProps","useInteractions","onMouseLeave","StyledContentWrapper","onMouseEnter","StyledContent","ErrorComponent"],"mappings":"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"}
|