{"version":3,"file":"app-2bfb347bd16b6b7677ef.js","mappings":"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","sources":["webpack://surfboard-site/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/extends.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://surfboard-site/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://surfboard-site/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://surfboard-site/./node_modules/baseui/esm/button/styled-components.js","webpack://surfboard-site/./node_modules/baseui/esm/button/utils.js","webpack://surfboard-site/./node_modules/baseui/esm/button/button-internals.js","webpack://surfboard-site/./node_modules/baseui/esm/button/default-props.js","webpack://surfboard-site/./node_modules/baseui/esm/button/button.js","webpack://surfboard-site/./node_modules/baseui/esm/button/constants.js","webpack://surfboard-site/./node_modules/baseui/esm/helpers/overrides.js","webpack://surfboard-site/./node_modules/baseui/esm/helpers/responsive-helpers.js","webpack://surfboard-site/./node_modules/baseui/esm/icon/delete.js","webpack://surfboard-site/./node_modules/baseui/esm/icon/omit-dollar-prefixed-keys.js","webpack://surfboard-site/./node_modules/baseui/esm/icon/icon.js","webpack://surfboard-site/./node_modules/baseui/esm/icon/styled-components.js","webpack://surfboard-site/./node_modules/baseui/esm/layer/layer.js","webpack://surfboard-site/./node_modules/baseui/esm/layer/layers-manager.js","webpack://surfboard-site/./node_modules/baseui/esm/list/constants.js","webpack://surfboard-site/./node_modules/baseui/esm/list/list-item-label.js","webpack://surfboard-site/./node_modules/baseui/esm/list/list-item.js","webpack://surfboard-site/./node_modules/baseui/esm/list/styled-components.js","webpack://surfboard-site/./node_modules/baseui/esm/list/utils.js","webpack://surfboard-site/./node_modules/baseui/esm/locale/en_US.js","webpack://surfboard-site/./node_modules/baseui/esm/accordion/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/breadcrumbs/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/datepicker/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/data-table/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/button-group/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/file-uploader/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/modal/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/drawer/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/pagination/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/select/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/toast/locale.js","webpack://surfboard-site/./node_modules/baseui/esm/locale/index.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/constants.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/nested-menus.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/maybe-child-menu.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/option-list.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/menu.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/utils.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/stateful-container.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/stateful-menu.js","webpack://surfboard-site/./node_modules/baseui/esm/menu/styled-components.js","webpack://surfboard-site/./node_modules/baseui/esm/popover/constants.js","webpack://surfboard-site/./node_modules/react-focus-lock/dist/es2015/MoveFocusInside.js","webpack://surfboard-site/./node_modules/popper.js/dist/esm/popper.js","webpack://surfboard-site/./node_modules/baseui/esm/layer/utils.js","webpack://surfboard-site/./node_modules/baseui/esm/layer/tether.js","webpack://surfboard-site/./node_modules/baseui/esm/layer/constants.js","webpack://surfboard-site/./node_modules/baseui/esm/popover/utils.js","webpack://surfboard-site/./node_modules/baseui/esm/popover/styled-components.js","webpack://surfboard-site/./node_modules/baseui/esm/popover/default-props.js","webpack://surfboard-site/./node_modules/baseui/esm/popover/popover.js","webpack://surfboard-site/./node_modules/baseui/esm/styles/styled.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/light-theme/light-theme.js","webpack://surfboard-site/./node_modules/baseui/esm/styles/theme-provider.js","webpack://surfboard-site/./node_modules/baseui/esm/styles/util.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/light-theme/color-component-tokens.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/light-theme/color-deprecated-semantic-tokens.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/light-theme/color-semantic-tokens.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/light-theme/color-tokens.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/light-theme/create-light-theme.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/shared/animation.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/shared/borders.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/shared/breakpoints.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/shared/grid.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/shared/lighting.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/shared/media-query.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/shared/sizing.js","webpack://surfboard-site/./node_modules/baseui/esm/themes/shared/typography.js","webpack://surfboard-site/./node_modules/baseui/esm/tokens/colors.js","webpack://surfboard-site/./node_modules/baseui/esm/utils/deep-merge.js","webpack://surfboard-site/./node_modules/baseui/esm/utils/focusVisible.js","webpack://surfboard-site/./node_modules/css-in-js-utils/lib/hyphenateProperty.js","webpack://surfboard-site/./node_modules/css-in-js-utils/lib/isPrefixedValue.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/constants.js","webpack://surfboard-site/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://surfboard-site/./node_modules/hyphenate-style-name/index.js","webpack://surfboard-site/./node_modules/just-extend/index.js","webpack://surfboard-site/./node_modules/mailgo/lib/mailgo.js","webpack://surfboard-site/./node_modules/react-cookie-consent/build/index.js","webpack://surfboard-site/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://surfboard-site/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://surfboard-site/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://surfboard-site/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://surfboard-site/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://surfboard-site/./node_modules/react-clientside-effect/lib/index.es.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/is.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/solver.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/array.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/focusMerge.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/setFocus.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/index.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/focusInside.js","webpack://surfboard-site/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://surfboard-site/./node_modules/focus-lock/dist/es2015/focusables.js","webpack://surfboard-site/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://surfboard-site/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://surfboard-site/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://surfboard-site/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://surfboard-site/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://surfboard-site/./node_modules/react-helmet/node_modules/react-fast-compare/index.js","webpack://surfboard-site/./node_modules/react-is/cjs/react-is.production.min.js","webpack://surfboard-site/./node_modules/react-is/index.js","webpack://surfboard-site/./node_modules/react-side-effect/lib/index.js","webpack://surfboard-site/./node_modules/react-uid/dist/es2015/UIDComponent.js","webpack://surfboard-site/./node_modules/react-uid/dist/es2015/Control.js","webpack://surfboard-site/./node_modules/react-uid/dist/es2015/uid.js","webpack://surfboard-site/./node_modules/react-uid/dist/es2015/context.js","webpack://surfboard-site/./node_modules/react-uid/dist/es2015/hooks.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/utils/capitalizeString.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/utils/prefixProperty.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/utils/prefixValue.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/utils/addNewValuesOnly.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/utils/isObject.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/data.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/cursor.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/crossFade.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/filter.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/flex.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/flexboxOld.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/gradient.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/grid.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/imageSet.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/logical.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/sizing.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/transition.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/index.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/backgroundClip.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/plugins/position.js","webpack://surfboard-site/./node_modules/inline-style-prefixer/es/createPrefixer.js","webpack://surfboard-site/./node_modules/styletron-engine-atomic/dist/browser.es5.es.js","webpack://surfboard-site/./node_modules/styletron-react/dist/browser.es5.es.js","webpack://surfboard-site/./node_modules/styletron-standard/dist/browser.es5.es.js","webpack://surfboard-site/./node_modules/tslib/tslib.es6.js","webpack://surfboard-site/./node_modules/gatsby-link/index.js","webpack://surfboard-site/./node_modules/gatsby-link/parse-path.js","webpack://surfboard-site/./node_modules/gatsby-react-router-scroll/index.js","webpack://surfboard-site/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://surfboard-site/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://surfboard-site/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://surfboard-site/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://surfboard-site/./.cache/api-runner-browser-plugins.js","webpack://surfboard-site/./.cache/api-runner-browser.js","webpack://surfboard-site/./node_modules/mitt/dist/mitt.es.js","webpack://surfboard-site/./.cache/emitter.js","webpack://surfboard-site/./.cache/normalize-page-path.js","webpack://surfboard-site/./.cache/find-path.js","webpack://surfboard-site/./.cache/gatsby-browser-entry.js","webpack://surfboard-site/./.cache/prefetch.js","webpack://surfboard-site/./.cache/loader.js","webpack://surfboard-site/./.cache/page-renderer.js","webpack://surfboard-site/./.cache/route-announcer-props.js","webpack://surfboard-site/./.cache/navigation.js","webpack://surfboard-site/./node_modules/shallow-compare/es/index.js","webpack://surfboard-site/./.cache/ensure-resources.js","webpack://surfboard-site/./.cache/production-app.js","webpack://surfboard-site/./.cache/public-page-renderer-prod.js","webpack://surfboard-site/./.cache/public-page-renderer.js","webpack://surfboard-site/./.cache/react-lifecycles-compat.js","webpack://surfboard-site/./.cache/redirect-utils.js","webpack://surfboard-site/./.cache/register-service-worker.js","webpack://surfboard-site/./.cache/strip-prefix.js","webpack://surfboard-site/./node_modules/baseui/esm/helpers/base-provider.js","webpack://surfboard-site/./node_modules/baseui/esm/drawer/constants.js","webpack://surfboard-site/./node_modules/baseui/esm/drawer/styled-components.js","webpack://surfboard-site/./node_modules/baseui/esm/drawer/close-icon.js","webpack://surfboard-site/./node_modules/baseui/esm/drawer/drawer.js","webpack://surfboard-site/./node_modules/baseui/esm/icon/menu.js","webpack://surfboard-site/./node_modules/baseui/esm/list/menu-adapter.js","webpack://surfboard-site/./src/components/Header/navDrawer.js","webpack://surfboard-site/./src/components/Header/Header.js","webpack://surfboard-site/./node_modules/react-helmet/es/Helmet.js","webpack://surfboard-site/./src/components/Header/index.js","webpack://surfboard-site/./src/components/Layout/index.js","webpack://surfboard-site/./src/components/Layout/Layout.js","webpack://surfboard-site/./gatsby-browser.js","webpack://surfboard-site/./node_modules/gatsby-plugin-gatsby-cloud/gatsby-browser.js","webpack://surfboard-site/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://surfboard-site/./node_modules/gatsby-plugin-mailgo/gatsby-browser.js","webpack://surfboard-site/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://surfboard-site/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://surfboard-site/./node_modules/gatsby-plugin-styletron/gatsby-browser.js","webpack://surfboard-site/./src/components/SectionContainer/index.js","webpack://surfboard-site/./src/components/SectionContainer/SectionContainer.jsx","webpack://surfboard-site/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://surfboard-site/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://surfboard-site/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://surfboard-site/./node_modules/invariant/browser.js","webpack://surfboard-site/./src/static/images/surfboardwhite.svg","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://surfboard-site/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["function _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\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\n\nvar _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\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport { styled } from '../styles/index.js';\nimport { KIND, SIZE, SHAPE } from './constants.js';\nexport var BaseButton = styled('button', function (_ref) {\n var $theme = _ref.$theme,\n $size = _ref.$size,\n $kind = _ref.$kind,\n $shape = _ref.$shape,\n $isLoading = _ref.$isLoading,\n $isSelected = _ref.$isSelected,\n $disabled = _ref.$disabled,\n $isFocusVisible = _ref.$isFocusVisible;\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n display: 'inline-flex',\n // need to maintain button width while showing loading spinner\n flexDirection: $isLoading ? 'column' : 'row',\n alignItems: 'center',\n justifyContent: 'center',\n borderLeftWidth: 0,\n borderTopWidth: 0,\n borderRightWidth: 0,\n borderBottomWidth: 0,\n borderLeftStyle: 'none',\n borderTopStyle: 'none',\n borderRightStyle: 'none',\n borderBottomStyle: 'none',\n outline: 'none',\n boxShadow: $isFocusVisible ? \"inset 0 0 0 3px \".concat($theme.colors.accent) : 'none',\n textDecoration: 'none',\n WebkitAppearance: 'none',\n transitionProperty: 'background',\n transitionDuration: $theme.animation.timing200,\n transitionTimingFunction: $theme.animation.linearCurve,\n cursor: 'pointer',\n ':disabled': {\n cursor: 'not-allowed',\n backgroundColor: $kind === KIND.minimal || $kind === KIND.tertiary ? 'transparent' : $theme.colors.buttonDisabledFill,\n color: $theme.colors.buttonDisabledText\n },\n marginLeft: 0,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0\n }, getFontStyles({\n $theme: $theme,\n $size: $size\n })), getBorderRadiiStyles({\n $theme: $theme,\n $size: $size,\n $shape: $shape\n })), getPaddingStyles({\n $theme: $theme,\n $size: $size,\n $shape: $shape\n })), getKindStyles({\n $theme: $theme,\n $kind: $kind,\n $isLoading: $isLoading,\n $isSelected: $isSelected,\n $disabled: $disabled\n })), getShapeStyles({\n $theme: $theme,\n $shape: $shape,\n $size: $size\n }));\n});\nBaseButton.displayName = \"BaseButton\";\nexport var EndEnhancer = styled('div', function (_ref2) {\n var $theme = _ref2.$theme;\n var marginDirection = $theme.direction === 'rtl' ? 'marginRight' : 'marginLeft';\n return _defineProperty({\n display: 'flex'\n }, marginDirection, $theme.sizing.scale500);\n});\nEndEnhancer.displayName = \"EndEnhancer\";\nexport var StartEnhancer = styled('div', function (_ref4) {\n var $theme = _ref4.$theme;\n var marginDirection = $theme.direction === 'rtl' ? 'marginLeft' : 'marginRight';\n return _defineProperty({\n display: 'flex'\n }, marginDirection, $theme.sizing.scale500);\n});\nStartEnhancer.displayName = \"StartEnhancer\";\nexport var LoadingSpinnerContainer = styled('div', function (_ref6) {\n var $theme = _ref6.$theme,\n $size = _ref6.$size; // we don't have a theming value for this\n\n var margins = '3px';\n\n if ($size === SIZE.mini || $size === SIZE.compact) {\n margins = $theme.sizing.scale0;\n }\n\n if ($size === SIZE.large) {\n margins = $theme.sizing.scale100;\n }\n\n return {\n lineHeight: 0,\n position: 'static',\n marginBottom: margins,\n marginTop: margins\n };\n});\nLoadingSpinnerContainer.displayName = \"LoadingSpinnerContainer\";\nexport var LoadingSpinner = styled('span', function (_ref7) {\n var $theme = _ref7.$theme,\n $kind = _ref7.$kind,\n $disabled = _ref7.$disabled,\n $size = _ref7.$size;\n\n var _getLoadingSpinnerCol = getLoadingSpinnerColors({\n $theme: $theme,\n $kind: $kind,\n $disabled: $disabled\n }),\n foreground = _getLoadingSpinnerCol.foreground,\n background = _getLoadingSpinnerCol.background;\n\n var dimension = $theme.sizing.scale550;\n\n if ($size === SIZE.mini || $size === SIZE.compact) {\n dimension = $theme.sizing.scale500;\n }\n\n if ($size === SIZE.large) {\n dimension = $theme.sizing.scale600;\n }\n\n return {\n height: dimension,\n width: dimension,\n borderTopLeftRadius: '50%',\n borderTopRightRadius: '50%',\n borderBottomRightRadius: '50%',\n borderBottomLeftRadius: '50%',\n borderLeftStyle: 'solid',\n borderTopStyle: 'solid',\n borderRightStyle: 'solid',\n borderBottomStyle: 'solid',\n borderLeftWidth: $theme.sizing.scale0,\n borderTopWidth: $theme.sizing.scale0,\n borderRightWidth: $theme.sizing.scale0,\n borderBottomWidth: $theme.sizing.scale0,\n borderTopColor: foreground,\n borderLeftColor: background,\n borderBottomColor: background,\n borderRightColor: background,\n boxSizing: 'border-box',\n display: 'inline-block',\n animationDuration: $theme.animation.timing700,\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite',\n animationName: {\n to: {\n transform: 'rotate(360deg)'\n },\n from: {\n transform: 'rotate(0deg)'\n }\n }\n };\n});\nLoadingSpinner.displayName = \"LoadingSpinner\";\n\nfunction getLoadingSpinnerColors(_ref8) {\n var $theme = _ref8.$theme,\n $kind = _ref8.$kind,\n $disabled = _ref8.$disabled;\n\n if ($disabled) {\n return {\n foreground: $theme.colors.buttonDisabledSpinnerForeground,\n background: $theme.colors.buttonDisabledSpinnerBackground\n };\n }\n\n switch ($kind) {\n case KIND.secondary:\n {\n return {\n foreground: $theme.colors.buttonSecondarySpinnerForeground,\n background: $theme.colors.buttonSecondarySpinnerBackground\n };\n }\n\n case KIND.tertiary:\n {\n return {\n foreground: $theme.colors.buttonTertiarySpinnerForeground,\n background: $theme.colors.buttonTertiarySpinnerBackground\n };\n }\n\n case KIND.minimal:\n {\n return {\n foreground: $theme.colors.buttonMinimalSpinnerForeground,\n background: $theme.colors.buttonMinimalSpinnerBackground\n };\n }\n\n case KIND.primary:\n default:\n {\n return {\n foreground: $theme.colors.buttonPrimarySpinnerForeground,\n background: $theme.colors.buttonPrimarySpinnerBackground\n };\n }\n }\n}\n\nfunction getBorderRadiiStyles(_ref9) {\n var $theme = _ref9.$theme,\n $size = _ref9.$size,\n $shape = _ref9.$shape;\n var value = $theme.borders.buttonBorderRadius;\n\n if ($shape === SHAPE.pill) {\n if ($size === SIZE.compact) {\n value = '30px';\n } else if ($size === SIZE.large) {\n value = '42px';\n } else {\n value = '38px';\n }\n } else if ($shape === SHAPE.circle || $shape === SHAPE.round) {\n value = '50%';\n }\n\n return {\n borderTopRightRadius: value,\n borderBottomRightRadius: value,\n borderTopLeftRadius: value,\n borderBottomLeftRadius: value\n };\n}\n\nfunction getFontStyles(_ref10) {\n var $theme = _ref10.$theme,\n $size = _ref10.$size;\n\n switch ($size) {\n case SIZE.mini:\n return $theme.typography.font150;\n\n case SIZE.compact:\n return $theme.typography.font250;\n\n case SIZE.large:\n return $theme.typography.font450;\n\n default:\n return $theme.typography.font350;\n }\n}\n\nfunction getPaddingStyles(_ref11) {\n var $theme = _ref11.$theme,\n $size = _ref11.$size,\n $shape = _ref11.$shape;\n var iconShape = $shape === SHAPE.square || $shape === SHAPE.circle || $shape === SHAPE.round;\n\n switch ($size) {\n case SIZE.mini:\n return {\n paddingTop: $theme.sizing.scale200,\n paddingBottom: $theme.sizing.scale200,\n paddingLeft: iconShape ? $theme.sizing.scale200 : $theme.sizing.scale300,\n paddingRight: iconShape ? $theme.sizing.scale200 : $theme.sizing.scale300\n };\n\n case SIZE.compact:\n return {\n paddingTop: $theme.sizing.scale400,\n paddingBottom: $theme.sizing.scale400,\n paddingLeft: iconShape ? $theme.sizing.scale400 : $theme.sizing.scale500,\n paddingRight: iconShape ? $theme.sizing.scale400 : $theme.sizing.scale500\n };\n\n case SIZE.large:\n return {\n paddingTop: $theme.sizing.scale600,\n paddingBottom: $theme.sizing.scale600,\n paddingLeft: iconShape ? $theme.sizing.scale600 : $theme.sizing.scale700,\n paddingRight: iconShape ? $theme.sizing.scale600 : $theme.sizing.scale700\n };\n\n default:\n return {\n paddingTop: $theme.sizing.scale550,\n paddingBottom: $theme.sizing.scale550,\n paddingLeft: iconShape ? $theme.sizing.scale550 : $theme.sizing.scale600,\n paddingRight: iconShape ? $theme.sizing.scale550 : $theme.sizing.scale600\n };\n }\n}\n\nfunction getKindStyles(_ref12) {\n var $theme = _ref12.$theme,\n $isLoading = _ref12.$isLoading,\n $isSelected = _ref12.$isSelected,\n $kind = _ref12.$kind,\n $disabled = _ref12.$disabled;\n\n if ($disabled) {\n return Object.freeze({});\n }\n\n switch ($kind) {\n case KIND.primary:\n if ($isSelected) {\n return {\n color: $theme.colors.buttonPrimarySelectedText,\n backgroundColor: $theme.colors.buttonPrimarySelectedFill\n };\n }\n\n return {\n color: $theme.colors.buttonPrimaryText,\n backgroundColor: $theme.colors.buttonPrimaryFill,\n ':hover': {\n backgroundColor: $isLoading ? $theme.colors.buttonPrimaryActive : $theme.colors.buttonPrimaryHover\n },\n ':active': {\n backgroundColor: $theme.colors.buttonPrimaryActive\n }\n };\n\n case KIND.secondary:\n if ($isSelected) {\n return {\n color: $theme.colors.buttonPrimaryText,\n backgroundColor: $theme.colors.buttonPrimaryFill\n };\n }\n\n return {\n color: $theme.colors.buttonSecondaryText,\n backgroundColor: $theme.colors.buttonSecondaryFill,\n ':hover': {\n backgroundColor: $isLoading ? $theme.colors.buttonSecondaryActive : $theme.colors.buttonSecondaryHover\n },\n ':active': {\n backgroundColor: $theme.colors.buttonSecondaryActive\n }\n };\n\n case KIND.tertiary:\n if ($isSelected) {\n return {\n color: $theme.colors.buttonTertiarySelectedText,\n backgroundColor: $theme.colors.buttonTertiarySelectedFill\n };\n }\n\n return {\n color: $theme.colors.buttonTertiaryText,\n backgroundColor: $theme.colors.buttonTertiaryFill,\n ':hover': {\n backgroundColor: $isLoading ? $theme.colors.buttonTertiaryActive : $theme.colors.buttonTertiaryHover\n },\n ':active': {\n backgroundColor: $theme.colors.buttonTertiaryActive\n }\n };\n\n case KIND.minimal:\n if ($isSelected) {\n return {\n color: $theme.colors.buttonMinimalSelectedText,\n backgroundColor: $theme.colors.buttonMinimalSelectedFill\n };\n }\n\n return {\n color: $theme.colors.buttonMinimalText,\n backgroundColor: $theme.colors.buttonMinimalFill,\n ':hover': {\n backgroundColor: $isLoading ? $theme.colors.buttonMinimalActive : $theme.colors.buttonMinimalHover\n },\n ':active': {\n backgroundColor: $theme.colors.buttonMinimalActive\n }\n };\n\n default:\n return Object.freeze({});\n }\n}\n\nfunction getShapeStyles(_ref13) {\n var $theme = _ref13.$theme,\n $shape = _ref13.$shape,\n $size = _ref13.$size;\n\n if ($shape === SHAPE.circle || $shape === SHAPE.square) {\n var height, width;\n\n switch ($size) {\n case SIZE.mini:\n height = '28px';\n width = '28px';\n break;\n\n case SIZE.compact:\n height = '36px';\n width = '36px';\n break;\n\n case SIZE.large:\n height = '56px';\n width = '56px';\n break;\n\n case SIZE.default:\n default:\n height = '48px';\n width = '48px';\n break;\n }\n\n return {\n height: height,\n width: width,\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0\n };\n } else {\n return {};\n }\n}","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport function getSharedProps(_ref) {\n var disabled = _ref.disabled,\n isLoading = _ref.isLoading,\n isSelected = _ref.isSelected,\n kind = _ref.kind,\n shape = _ref.shape,\n size = _ref.size;\n return {\n $disabled: disabled,\n $isLoading: isLoading,\n $isSelected: isSelected,\n $kind: kind,\n $shape: shape,\n $size: size\n };\n}","function _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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport * as ReactIs from 'react-is';\nimport { StartEnhancer as StyledStartEnhancer, EndEnhancer as StyledEndEnhancer } from './styled-components.js';\nimport { getSharedProps } from './utils.js';\nimport { getOverrides } from '../helpers/overrides.js';\n\nfunction RenderEnhancer(props) {\n var Enhancer = props.Enhancer,\n restProps = _objectWithoutProperties(props, [\"Enhancer\"]);\n\n if (typeof Enhancer === 'string') {\n return Enhancer;\n }\n\n if (ReactIs.isValidElementType(Enhancer)) {\n // $FlowFixMe\n return /*#__PURE__*/React.createElement(Enhancer, restProps);\n } // $FlowFixMe\n\n\n return Enhancer;\n}\n\nexport default function ButtonInternals(props) {\n var children = props.children,\n _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides,\n startEnhancer = props.startEnhancer,\n endEnhancer = props.endEnhancer;\n\n var _getOverrides = getOverrides(overrides.StartEnhancer, StyledStartEnhancer),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n StartEnhancer = _getOverrides2[0],\n startEnhancerProps = _getOverrides2[1];\n\n var _getOverrides3 = getOverrides(overrides.EndEnhancer, StyledEndEnhancer),\n _getOverrides4 = _slicedToArray(_getOverrides3, 2),\n EndEnhancer = _getOverrides4[0],\n endEnhancerProps = _getOverrides4[1];\n\n var sharedProps = getSharedProps(props);\n return /*#__PURE__*/React.createElement(React.Fragment, null, startEnhancer !== null && startEnhancer !== undefined && /*#__PURE__*/React.createElement(StartEnhancer, _extends({}, sharedProps, startEnhancerProps), /*#__PURE__*/React.createElement(RenderEnhancer, {\n Enhancer: startEnhancer\n })), children, endEnhancer !== null && endEnhancer !== undefined && /*#__PURE__*/React.createElement(EndEnhancer, _extends({}, sharedProps, endEnhancerProps), /*#__PURE__*/React.createElement(RenderEnhancer, {\n Enhancer: endEnhancer\n })));\n}","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport { KIND, SHAPE, SIZE } from './constants.js';\nexport var defaultProps = {\n disabled: false,\n isLoading: false,\n isSelected: false,\n kind: KIND.primary,\n overrides: {},\n shape: SHAPE.default,\n size: SIZE.default\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport { BaseButton as StyledBaseButton, LoadingSpinner as StyledLoadingSpinner, LoadingSpinnerContainer as StyledLoadingSpinnerContainer } from './styled-components.js';\nimport { getSharedProps } from './utils.js';\nimport ButtonInternals from './button-internals.js';\nimport { defaultProps } from './default-props.js';\nimport { getOverrides } from '../helpers/overrides.js';\nimport { isFocusVisible, forkFocus, forkBlur } from '../utils/focusVisible.js';\n\nvar Button = /*#__PURE__*/function (_React$Component) {\n _inherits(Button, _React$Component);\n\n var _super = _createSuper(Button);\n\n function Button() {\n var _this;\n\n _classCallCheck(this, Button);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isFocusVisible: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"internalOnClick\", function () {\n var _this$props = _this.props,\n isLoading = _this$props.isLoading,\n onClick = _this$props.onClick;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (isLoading) {\n args[0].preventDefault();\n return;\n }\n\n onClick && onClick.apply(void 0, args);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleFocus\", function (event) {\n if (isFocusVisible(event)) {\n _this.setState({\n isFocusVisible: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleBlur\", function (event) {\n if (_this.state.isFocusVisible !== false) {\n _this.setState({\n isFocusVisible: false\n });\n }\n });\n\n return _this;\n }\n\n _createClass(Button, [{\n key: \"render\",\n value: function render() {\n var _ref;\n\n var _this$props2 = this.props,\n _this$props2$override = _this$props2.overrides,\n overrides = _this$props2$override === void 0 ? {} : _this$props2$override,\n size = _this$props2.size,\n kind = _this$props2.kind,\n shape = _this$props2.shape,\n isLoading = _this$props2.isLoading,\n isSelected = _this$props2.isSelected,\n startEnhancer = _this$props2.startEnhancer,\n endEnhancer = _this$props2.endEnhancer,\n children = _this$props2.children,\n forwardedRef = _this$props2.forwardedRef,\n restProps = _objectWithoutProperties(_this$props2, [\"overrides\", \"size\", \"kind\", \"shape\", \"isLoading\", \"isSelected\", \"startEnhancer\", \"endEnhancer\", \"children\", \"forwardedRef\"]); // Get overrides\n\n\n var _getOverrides = getOverrides( // adding both (1) BaseButton and (2) Root\n // (1) because it's a Button under the hood\n // (2) because we want consistency with the rest of the components\n overrides.BaseButton || overrides.Root, StyledBaseButton),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n BaseButton = _getOverrides2[0],\n baseButtonProps = _getOverrides2[1];\n\n var _getOverrides3 = getOverrides(overrides.LoadingSpinner, StyledLoadingSpinner),\n _getOverrides4 = _slicedToArray(_getOverrides3, 2),\n LoadingSpinner = _getOverrides4[0],\n loadingSpinnerProps = _getOverrides4[1];\n\n var _getOverrides5 = getOverrides(overrides.LoadingSpinnerContainer, StyledLoadingSpinnerContainer),\n _getOverrides6 = _slicedToArray(_getOverrides5, 2),\n LoadingSpinnerContainer = _getOverrides6[0],\n loadingSpinnerContainerProps = _getOverrides6[1];\n\n var sharedProps = _objectSpread(_objectSpread({}, getSharedProps(this.props)), {}, {\n $isFocusVisible: this.state.isFocusVisible\n });\n\n return /*#__PURE__*/React.createElement(BaseButton, _extends({\n ref: forwardedRef,\n \"data-baseweb\": \"button\"\n }, isLoading ? (_ref = {}, _defineProperty(_ref, 'aria-label', \"loading \".concat(typeof this.props.children === 'string' ? this.props.children : '')), _defineProperty(_ref, 'aria-busy', 'true'), _ref) : {}, sharedProps, restProps, baseButtonProps, {\n // Applies last to override passed in onClick\n onClick: this.internalOnClick,\n onFocus: forkFocus(_objectSpread(_objectSpread({}, restProps), baseButtonProps), this.handleFocus),\n onBlur: forkBlur(_objectSpread(_objectSpread({}, restProps), baseButtonProps), this.handleBlur)\n }), isLoading ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n opacity: 0,\n display: 'flex',\n height: '0px'\n }\n }, /*#__PURE__*/React.createElement(ButtonInternals, this.props)), /*#__PURE__*/React.createElement(LoadingSpinnerContainer, _extends({}, sharedProps, loadingSpinnerContainerProps), /*#__PURE__*/React.createElement(LoadingSpinner, _extends({}, sharedProps, loadingSpinnerProps)))) : /*#__PURE__*/React.createElement(ButtonInternals, this.props));\n }\n }]);\n\n return Button;\n}(React.Component);\n\n_defineProperty(Button, \"defaultProps\", defaultProps);\n\nvar ForwardedButton = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Button, _extends({\n forwardedRef: ref\n }, props));\n});\nForwardedButton.displayName = 'Button';\nexport default ForwardedButton;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport var KIND = {\n primary: 'primary',\n secondary: 'secondary',\n tertiary: 'tertiary',\n minimal: 'minimal'\n};\nexport var SHAPE = {\n default: 'default',\n pill: 'pill',\n round: 'round',\n circle: 'circle',\n square: 'square'\n};\nexport var SIZE = {\n mini: 'mini',\n default: 'default',\n compact: 'compact',\n large: 'large'\n};","function _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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/* eslint-disable cup/no-undef */\n\n\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\nimport deepMerge from '../utils/deep-merge.js';\n/**\n * Given an override argument, returns the component implementation override if it exists\n */\n// eslint-disable-next-line flowtype/no-weak-types\n\nexport function getOverride(override) {\n if (isValidElementType(override)) {\n return override;\n } // Check if override is OverrideObjectT\n\n\n if (override && _typeof(override) === 'object') {\n // Remove this 'any' once this flow issue is fixed:\n // https://github.com/facebook/flow/issues/6666\n // eslint-disable-next-line flowtype/no-weak-types\n return override.component;\n } // null/undefined\n\n\n return override;\n}\n/**\n * Given an override argument, returns the override props that should be passed\n * to the component when rendering it.\n */\n\nexport function getOverrideProps(override) {\n if (override && _typeof(override) === 'object') {\n if (_typeof(override.props) === 'object') {\n return _objectSpread(_objectSpread({}, override.props), {}, {\n $style: override.style\n });\n } else {\n return {\n $style: override.style\n };\n }\n }\n\n return {};\n}\n/**\n * Coerces an override argument into an override object\n * (sometimes it is just an override component)\n */\n\nexport function toObjectOverride(override) {\n if (isValidElementType(override)) {\n return {\n // eslint-disable-next-line flowtype/no-weak-types\n component: override\n };\n } // Flow can't figure out that typeof 'function' above will\n // catch React.StatelessFunctionalComponent\n // (probably related to https://github.com/facebook/flow/issues/6666)\n // eslint-disable-next-line flowtype/no-weak-types\n\n\n return override || {};\n}\n/**\n * Get a convenient override array that will always have [component, props]\n */\n\n/* eslint-disable flowtype/no-weak-types */\n\nexport function getOverrides(override, defaultComponent) {\n var Component = getOverride(override) || defaultComponent;\n\n if (override && _typeof(override) === 'object' && typeof override.props === 'function') {\n // TODO(v11)\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('baseui:Overrides Props as a function will be removed in the next major version. Override the whole component instead. ' + 'See https://baseweb.design/guides/understanding-overrides/#override-the-entire-subcomponent');\n }\n\n var DynamicOverride = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var mappedProps = override.props(props);\n var nextProps = getOverrideProps(_objectSpread(_objectSpread({}, override), {}, {\n props: mappedProps\n }));\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, nextProps));\n });\n DynamicOverride.displayName = Component.displayName;\n return [DynamicOverride, {}];\n }\n\n var props = getOverrideProps(override);\n return [Component, props];\n}\n/* eslint-enable flowtype/no-weak-types */\n\n/**\n * Merges two overrides objects – this is useful if you want to inject your own\n * overrides into a child component, but also accept further overrides from\n * from upstream. See `mergeOverride` below.\n */\n\nexport function mergeOverrides() {\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var merged = Object.assign({}, target, source);\n var allIdentifiers = Object.keys(merged); // const allIdentifiers = Object.keys({...target, ...source});\n\n return allIdentifiers.reduce(function (acc, name) {\n acc[name] = mergeOverride(toObjectOverride(target[name]), toObjectOverride(source[name]));\n return acc;\n }, {});\n}\n/**\n * Merges two override objects using the following behavior:\n * - Component implementation from the source (parent) replaces target\n * - Props and styles are both deep merged\n */\n\nexport function mergeOverride(target, source) {\n // Shallow merge should handle `component`\n var merged = _objectSpread(_objectSpread({}, target), source);\n\n if (target.props && source.props) {\n merged.props = mergeConfigurationOverrides(target.props, source.props);\n }\n\n if (target.style && source.style) {\n merged.style = mergeConfigurationOverrides(target.style, source.style);\n }\n\n return merged;\n}\n/**\n * Since style or props overrides can be an object *or* a function, we need to handle\n * the case that one of them is a function. We do this by returning a new\n * function that deep merges the result of each style override\n */\n\nexport function mergeConfigurationOverrides(target, source) {\n // Simple case of both objects\n if (_typeof(target) === 'object' && _typeof(source) === 'object') {\n return deepMerge({}, target, source);\n } // At least one is a function, return a new composite function\n\n\n return function () {\n return deepMerge({}, typeof target === 'function' ? target.apply(void 0, arguments) : target, typeof source === 'function' ? source.apply(void 0, arguments) : source);\n };\n} // Lil' hook for memoized unpacking of overrides\n\nexport function useOverrides(defaults) {\n var overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return React.useMemo(function () {\n return (// eslint-disable-next-line flowtype/no-weak-types\n Object.keys(defaults).reduce(function (obj, key) {\n obj[key] = getOverrides(overrides[key], defaults[key]);\n return obj;\n }, {})\n );\n }, [overrides]);\n}","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/**\n * Helper function that generates media queries based on breakpoint, e.g.\n * getMediaQuery(720) => '@media screen and (min-width: 720px)'\n */\nexport var getMediaQuery = function getMediaQuery(breakpoint) {\n return \"@media screen and (min-width: \".concat(breakpoint, \"px)\");\n};\nexport var getMediaQueries = function getMediaQueries(breakpoints) {\n return Object.keys(breakpoints).map(function (key) {\n return breakpoints[key];\n }).sort(function (a, b) {\n return a - b;\n }).map(getMediaQuery);\n};","function _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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n// BASEUI-GENERATED-REACT-ICON\n// DO NOT EDIT THIS FILE DIRECTLY, SEE README.md\n\n\nimport * as React from 'react';\nimport { useStyletron } from '../styles/index.js';\nimport { mergeOverride, toObjectOverride } from '../helpers/overrides.js';\nimport Icon from './icon.js';\n\nfunction Delete(props, ref) {\n var _useStyletron = useStyletron(),\n _useStyletron2 = _slicedToArray(_useStyletron, 2),\n theme = _useStyletron2[1];\n\n var _props$title = props.title,\n title = _props$title === void 0 ? 'Delete' : _props$title,\n size = props.size,\n color = props.color,\n _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides,\n restProps = _objectWithoutProperties(props, [\"title\", \"size\", \"color\", \"overrides\"]);\n\n var SvgOverride = mergeOverride( // Icons from the theme target the SVG override in the underlying Icon component\n {\n component: theme.icons && theme.icons.Delete ? theme.icons.Delete : null\n }, overrides && overrides.Svg ? toObjectOverride(overrides.Svg) : {});\n return /*#__PURE__*/React.createElement(Icon, _extends({\n viewBox: \"0 0 24 24\",\n ref: ref,\n title: title,\n size: size,\n color: color,\n overrides: {\n Svg: SvgOverride\n }\n }, restProps), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.29289 7.29289C7.68342 6.90237 8.31658 6.90237 8.70711 7.29289L12 10.5858L15.2929 7.29289C15.6834 6.90237 16.3166 6.90237 16.7071 7.29289C17.0976 7.68342 17.0976 8.31658 16.7071 8.70711L13.4142 12L16.7071 15.2929C17.0976 15.6834 17.0976 16.3166 16.7071 16.7071C16.3166 17.0976 15.6834 17.0976 15.2929 16.7071L12 13.4142L8.70711 16.7071C8.31658 17.0976 7.68342 17.0976 7.29289 16.7071C6.90237 16.3166 6.90237 15.6834 7.29289 15.2929L10.5858 12L7.29289 8.70711C6.90237 8.31658 6.90237 7.68342 7.29289 7.29289Z\"\n }));\n}\n\nexport default /*#__PURE__*/React.forwardRef(Delete);","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n// eslint-disable-next-line flowtype/no-weak-types\nexport default function omitDollarPrefixedKeys(source) {\n var result = {};\n\n for (var key in source) {\n if (key[0] !== '$') {\n result[key] = source[key];\n }\n }\n\n return result;\n}","function _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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport { getOverrides } from '../helpers/overrides.js';\nimport { Svg as StyledSvg } from './styled-components.js';\nimport omitDollarPrefixedKeys from './omit-dollar-prefixed-keys.js';\n\nfunction Icon(props, ref) {\n var children = props.children,\n title = props.title,\n size = props.size,\n color = props.color,\n _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides,\n restProps = _objectWithoutProperties(props, [\"children\", \"title\", \"size\", \"color\", \"overrides\"]);\n\n var _getOverrides = getOverrides(overrides.Svg, StyledSvg),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n Svg = _getOverrides2[0],\n overrideProps = _getOverrides2[1]; // Determine how/which props are passed based on if the component is a Styletron component.\n // $FlowFixMe: __STYLETRON__ not in React.AbstractcomponentStatics\n\n\n var passThroughProps = Svg.__STYLETRON__ ? _objectSpread(_objectSpread({\n title: title,\n $color: color,\n $size: size\n }, restProps), overrideProps) : _objectSpread(_objectSpread({\n title: title,\n color: color,\n size: size\n }, omitDollarPrefixedKeys(restProps)), omitDollarPrefixedKeys(overrideProps));\n return /*#__PURE__*/React.createElement(Svg, _extends({\n \"data-baseweb\": \"icon\",\n ref: ref\n }, passThroughProps), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, children);\n}\n\nexport default /*#__PURE__*/React.forwardRef(Icon);","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport { styled } from '../styles/index.js';\nexport function getSvgStyles(_ref) {\n var $theme = _ref.$theme,\n $size = _ref.$size,\n $color = _ref.$color;\n var size = $theme.sizing.scale600;\n\n if ($size) {\n if ($theme.sizing[$size]) {\n size = $theme.sizing[$size];\n } else if (typeof $size === 'number') {\n size = \"\".concat($size, \"px\");\n } else {\n size = $size;\n }\n }\n\n var color = 'currentColor';\n\n if ($color) {\n if ($theme.colors[$color]) {\n color = $theme.colors[$color];\n } else {\n color = $color;\n }\n }\n\n return {\n display: 'inline-block',\n fill: color,\n color: color,\n height: size,\n width: size\n };\n}\nexport var Svg = styled('svg', getSvgStyles);\nSvg.displayName = \"Svg\";","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/* global document */\n\n\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { styled } from '../styles/index.js';\nimport { LayersContext, Consumer } from './layers-manager.js';\nvar Container = styled('div', function (_ref) {\n var $zIndex = _ref.$zIndex;\n return {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n zIndex: $zIndex || null\n };\n});\nContainer.displayName = \"Container\";\n\nvar LayerComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(LayerComponent, _React$Component);\n\n var _super = _createSuper(LayerComponent);\n\n function LayerComponent() {\n var _this;\n\n _classCallCheck(this, LayerComponent);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n container: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEscape\", function () {\n if (_this.props.onEscape) {\n _this.props.onEscape();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (event) {\n if (_this.props.onDocumentClick) {\n _this.props.onDocumentClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(LayerComponent, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.context.addEscapeHandler(this.onEscape);\n\n if (!this.props.isHoverLayer) {\n this.context.addDocClickHandler(this.onDocumentClick);\n }\n\n var _this$props = this.props,\n onMount = _this$props.onMount,\n mountNode = _this$props.mountNode,\n layersManagerHost = _this$props.host;\n\n if (mountNode) {\n onMount && onMount();\n return;\n } // There was no LayersManager added if this.props.host === undefined.\n // Use document.body is the case no LayersManager is used.\n\n\n var hasLayersManager = layersManagerHost !== undefined;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!hasLayersManager) {\n console.warn('`LayersManager` was not found. This occurs if you are attempting to use a component requiring `Layer` without using the `BaseProvider` at the root of your app. Please visit https://baseweb.design/components/base-provider/ for more information');\n }\n }\n\n var host = hasLayersManager ? layersManagerHost : document.body;\n\n if (host) {\n this.addContainer(host);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props2 = this.props,\n host = _this$props2.host,\n mountNode = _this$props2.mountNode;\n\n if (mountNode) {\n return;\n }\n\n if (host && host !== prevProps.host && prevProps.host === null) {\n this.addContainer(host);\n }\n\n if (prevProps.isHoverLayer != this.props.isHoverLayer) {\n if (this.props.isHoverLayer) {\n this.context.removeDocClickHandler(this.onDocumentClick);\n } else {\n this.context.addDocClickHandler(this.onDocumentClick);\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.context.removeEscapeHandler(this.onEscape);\n this.context.removeDocClickHandler(this.onDocumentClick);\n\n if (this.props.onUnmount) {\n this.props.onUnmount();\n }\n\n var host = this.props.host;\n var container = this.state.container;\n\n if (host && container) {\n if (host.contains(container)) {\n host.removeChild(container);\n }\n }\n }\n }, {\n key: \"addContainer\",\n value: function addContainer(host) {\n var _this$props3 = this.props,\n index = _this$props3.index,\n mountNode = _this$props3.mountNode,\n onMount = _this$props3.onMount; // Do nothing if mountNode is provided\n\n if (mountNode) {\n return;\n }\n\n if (host) {\n var container = host.ownerDocument.createElement('div'); // `host` is an DOM node, but not a React component\n\n var sibling = typeof index === 'number' ? host.children[index] : null;\n sibling ? host.insertBefore(container, sibling) : host.appendChild(container);\n this.setState({\n container: container\n }, function () {\n onMount && onMount();\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var container = this.state.container;\n var _this$props4 = this.props,\n children = _this$props4.children,\n mountNode = _this$props4.mountNode,\n zIndex = _this$props4.zIndex; // Only adding an additional wrapper when a layer has z-index to be set\n\n var childrenToRender = zIndex ? /*#__PURE__*/React.createElement(Container, {\n $zIndex: zIndex\n }, children) : children;\n\n if (typeof document !== 'undefined') {\n if (mountNode || container) {\n // $FlowFixMe\n return /*#__PURE__*/ReactDOM.createPortal(childrenToRender, mountNode || container);\n }\n\n return null;\n }\n\n return null;\n }\n }]);\n\n return LayerComponent;\n}(React.Component);\n\n_defineProperty(LayerComponent, \"contextType\", LayersContext);\n\nexport default function Layer(props) {\n return /*#__PURE__*/React.createElement(Consumer, null, function (_ref2) {\n var host = _ref2.host,\n zIndex = _ref2.zIndex;\n return /*#__PURE__*/React.createElement(LayerComponent, _extends({}, props, {\n host: host,\n zIndex: zIndex\n }));\n });\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport { styled } from '../styles/index.js';\nimport { getOverrides } from '../helpers/overrides.js';\nimport { initFocusVisible } from '../utils/focusVisible.js';\nvar StyledAppContainer = styled('div', {});\nStyledAppContainer.displayName = \"StyledAppContainer\";\nvar StyledLayersContainer = styled('div', {});\nStyledLayersContainer.displayName = \"StyledLayersContainer\";\n\nfunction defaultEventHandlerFn() {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('`LayersManager` was not found. This occurs if you are attempting to use a component requiring `Layer` without using the `BaseProvider` at the root of your app. Please visit https://baseweb.design/components/base-provider/ for more information');\n }\n}\n\nexport var LayersContext = /*#__PURE__*/React.createContext({\n addEscapeHandler: defaultEventHandlerFn,\n removeEscapeHandler: defaultEventHandlerFn,\n addDocClickHandler: defaultEventHandlerFn,\n removeDocClickHandler: defaultEventHandlerFn,\n host: undefined,\n zIndex: undefined\n});\nexport var Provider = LayersContext.Provider;\nexport var Consumer = LayersContext.Consumer;\n\nvar LayersManager = /*#__PURE__*/function (_React$Component) {\n _inherits(LayersManager, _React$Component);\n\n var _super = _createSuper(LayersManager);\n\n function LayersManager(props) {\n var _this;\n\n _classCallCheck(this, LayersManager);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"host\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"containerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (event) {\n var docClickHandler = _this.state.docClickHandlers[_this.state.docClickHandlers.length - 1];\n\n if (docClickHandler) {\n docClickHandler(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyUp\", function (event) {\n if (event.key === 'Escape') {\n var escapeKeyHandler = _this.state.escapeKeyHandlers[_this.state.escapeKeyHandlers.length - 1];\n\n if (escapeKeyHandler) {\n escapeKeyHandler();\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onAddEscapeHandler\", function (escapeKeyHandler) {\n _this.setState(function (prev) {\n return {\n escapeKeyHandlers: [].concat(_toConsumableArray(prev.escapeKeyHandlers), [escapeKeyHandler])\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRemoveEscapeHandler\", function (escapeKeyHandler) {\n _this.setState(function (prev) {\n return {\n escapeKeyHandlers: prev.escapeKeyHandlers.filter(function (handler) {\n return handler !== escapeKeyHandler;\n })\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onAddDocClickHandler\", function (docClickHandler) {\n _this.setState(function (prev) {\n return {\n docClickHandlers: [].concat(_toConsumableArray(prev.docClickHandlers), [docClickHandler])\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRemoveDocClickHandler\", function (docClickHandler) {\n _this.setState(function (prev) {\n return {\n docClickHandlers: prev.docClickHandlers.filter(function (handler) {\n return handler !== docClickHandler;\n })\n };\n });\n });\n\n _this.state = {\n escapeKeyHandlers: [],\n docClickHandlers: []\n };\n return _this;\n }\n\n _createClass(LayersManager, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.forceUpdate();\n initFocusVisible(this.containerRef.current);\n\n if (typeof document !== 'undefined') {\n document.addEventListener('keyup', this.onKeyUp); // using mousedown event so that callback runs before events on children inside of the layer\n\n document.addEventListener('mousedown', this.onDocumentClick);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (typeof document !== 'undefined') {\n document.removeEventListener('keyup', this.onKeyUp);\n document.removeEventListener('mousedown', this.onDocumentClick);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props$overrides = this.props.overrides,\n overrides = _this$props$overrides === void 0 ? {} : _this$props$overrides;\n\n var _getOverrides = getOverrides(overrides.AppContainer, StyledAppContainer),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n AppContainer = _getOverrides2[0],\n appContainerProps = _getOverrides2[1];\n\n var _getOverrides3 = getOverrides(overrides.LayersContainer, StyledLayersContainer),\n _getOverrides4 = _slicedToArray(_getOverrides3, 2),\n LayersContainer = _getOverrides4[0],\n layersContainerProps = _getOverrides4[1];\n\n return /*#__PURE__*/React.createElement(Consumer, null, function (_ref) {\n var host = _ref.host;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (host !== undefined) {\n // eslint-disable-next-line no-console\n console.warn('There is a LayersManager already exists in your application. It is not recommended to have more than one LayersManager in an application.');\n }\n }\n\n return /*#__PURE__*/React.createElement(Provider, {\n value: {\n host: host || _this2.host.current,\n zIndex: _this2.props.zIndex,\n addEscapeHandler: _this2.onAddEscapeHandler,\n removeEscapeHandler: _this2.onRemoveEscapeHandler,\n addDocClickHandler: _this2.onAddDocClickHandler,\n removeDocClickHandler: _this2.onRemoveDocClickHandler\n }\n }, /*#__PURE__*/React.createElement(AppContainer, _extends({}, appContainerProps, {\n ref: _this2.containerRef\n }), _this2.props.children), /*#__PURE__*/React.createElement(LayersContainer, _extends({}, layersContainerProps, {\n ref: _this2.host\n })));\n });\n }\n }]);\n\n return LayersManager;\n}(React.Component);\n\nexport { LayersManager as default };","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport var ARTWORK_SIZES = {\n SMALL: 'SMALL',\n MEDIUM: 'MEDIUM',\n LARGE: 'LARGE'\n};\nexport var SHAPE = {\n DEFAULT: 'DEFAULT',\n ROUND: 'ROUND'\n};","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport React from 'react';\nimport { getOverrides } from '../helpers/overrides.js';\nimport { StyledLabelContent, StyledLabelDescription, StyledLabelSublistContent } from './styled-components.js';\n\nfunction ListItemLabel(props) {\n var _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides;\n\n var _getOverrides = getOverrides(overrides.LabelSublistContent, StyledLabelSublistContent),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n LabelSublistContent = _getOverrides2[0],\n labelSublistContentProps = _getOverrides2[1];\n\n var _getOverrides3 = getOverrides(overrides.LabelContent, StyledLabelContent),\n _getOverrides4 = _slicedToArray(_getOverrides3, 2),\n LabelContent = _getOverrides4[0],\n labelContentProps = _getOverrides4[1];\n\n var _getOverrides5 = getOverrides(overrides.LabelDescription, StyledLabelDescription),\n _getOverrides6 = _slicedToArray(_getOverrides5, 2),\n LabelDescription = _getOverrides6[0],\n labelDescriptionProps = _getOverrides6[1];\n\n if (props.sublist) {\n return /*#__PURE__*/React.createElement(LabelSublistContent, labelSublistContentProps, props.children);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(LabelContent, labelContentProps, props.children), props.description && /*#__PURE__*/React.createElement(LabelDescription, labelDescriptionProps, props.description));\n}\n\nexport default ListItemLabel;","function _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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport React from 'react';\nimport { getOverrides } from '../helpers/overrides.js';\nimport { ARTWORK_SIZES, SHAPE } from './constants.js';\nimport { StyledRoot, StyledContent, StyledEndEnhancerContainer, StyledArtworkContainer } from './styled-components.js';\nimport { artworkSizeToValue } from './utils.js';\nvar ListItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides;\n var Artwork = props.artwork;\n var EndEnhancer = props.endEnhancer;\n\n var _getOverrides = getOverrides(overrides.Root, StyledRoot),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n Root = _getOverrides2[0],\n rootProps = _getOverrides2[1];\n\n var _getOverrides3 = getOverrides(overrides.ArtworkContainer, StyledArtworkContainer),\n _getOverrides4 = _slicedToArray(_getOverrides3, 2),\n ArtworkContainer = _getOverrides4[0],\n artworkContainerProps = _getOverrides4[1];\n\n var _getOverrides5 = getOverrides(overrides.Content, StyledContent),\n _getOverrides6 = _slicedToArray(_getOverrides5, 2),\n Content = _getOverrides6[0],\n contentProps = _getOverrides6[1];\n\n var _getOverrides7 = getOverrides(overrides.EndEnhancerContainer, StyledEndEnhancerContainer),\n _getOverrides8 = _slicedToArray(_getOverrides7, 2),\n EndEnhancerContainer = _getOverrides8[0],\n endEnhancerContainerProps = _getOverrides8[1];\n\n var artworkSize = React.useMemo(function () {\n if (props.sublist) {\n var size = props.artworkSize || ARTWORK_SIZES.SMALL;\n\n if (props.artworkSize === ARTWORK_SIZES.MEDIUM) {\n size = ARTWORK_SIZES.SMALL;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('When ListItem sublist prop is true, artworkSize MEDIUM is aliased to SMALL');\n }\n }\n\n return size;\n } else {\n return props.artworkSize || ARTWORK_SIZES.MEDIUM;\n }\n }, [props.artworkSize, props.sublist]);\n return /*#__PURE__*/React.createElement(Root // eslint-disable-next-line flowtype/no-weak-types\n , _extends({\n ref: ref,\n $shape: props.shape || SHAPE.DEFAULT\n }, rootProps), Artwork && /*#__PURE__*/React.createElement(ArtworkContainer, _extends({\n $artworkSize: artworkSize,\n $sublist: Boolean(props.sublist)\n }, artworkContainerProps), /*#__PURE__*/React.createElement(Artwork, {\n size: typeof artworkSize === 'number' ? artworkSize : artworkSizeToValue(artworkSize, Boolean(props.sublist))\n })), /*#__PURE__*/React.createElement(Content, _extends({\n $mLeft: !Artwork,\n $sublist: !!props.sublist\n }, contentProps), props.children, EndEnhancer && EndEnhancer !== 0 && /*#__PURE__*/React.createElement(EndEnhancerContainer, endEnhancerContainerProps, /*#__PURE__*/React.createElement(EndEnhancer, null))));\n});\nListItem.displayName = 'ListItem';\nexport default ListItem;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport { styled, expandBorderStyles } from '../styles/index.js';\nimport { artworkSizeToValue } from './utils.js';\nimport { SHAPE } from './constants.js';\nexport var StyledRoot = styled('li', function (_ref) {\n var $theme = _ref.$theme,\n $shape = _ref.$shape;\n return {\n alignItems: 'center',\n backgroundColor: $theme.colors.backgroundPrimary,\n display: 'flex',\n listStyleType: 'none',\n width: '100%',\n borderTopLeftRadius: $shape === SHAPE.ROUND ? $theme.borders.radius400 : 0,\n borderTopRightRadius: $shape === SHAPE.ROUND ? $theme.borders.radius400 : 0,\n borderBottomLeftRadius: $shape === SHAPE.ROUND ? $theme.borders.radius400 : 0,\n borderBottomRightRadius: $shape === SHAPE.ROUND ? $theme.borders.radius400 : 0,\n overflow: 'hidden'\n };\n});\nStyledRoot.displayName = \"StyledRoot\";\nexport var StyledContent = styled('div', function (_ref2) {\n var $mLeft = _ref2.$mLeft,\n $sublist = _ref2.$sublist,\n $theme = _ref2.$theme;\n return _objectSpread(_objectSpread({}, expandBorderStyles($theme.borders.border100)), {}, {\n alignItems: 'center',\n borderTopStyle: 'none',\n borderRightStyle: 'none',\n borderLeftStyle: 'none',\n display: 'flex',\n flexGrow: 1,\n minHeight: $sublist ? 'initial' : $theme.sizing.scale1600,\n justifyContent: 'space-between'\n }, $theme.direction === 'rtl' ? {\n paddingLeft: $theme.sizing.scale600,\n marginRight: $mLeft ? $theme.sizing.scale600 : null\n } : {\n paddingRight: $theme.sizing.scale600,\n marginLeft: $mLeft ? $theme.sizing.scale600 : null\n });\n});\nStyledContent.displayName = \"StyledContent\";\nexport var StyledEndEnhancerContainer = styled('div', {\n alignItems: 'center',\n display: 'flex'\n});\nStyledEndEnhancerContainer.displayName = \"StyledEndEnhancerContainer\";\nexport var StyledArtworkContainer = styled('div', function (_ref3) {\n var $artworkSize = _ref3.$artworkSize,\n $sublist = _ref3.$sublist,\n $theme = _ref3.$theme;\n var sizeValue = typeof $artworkSize === 'number' ? $artworkSize : artworkSizeToValue($artworkSize, Boolean($sublist));\n\n if (sizeValue > 36) {\n return {\n alignItems: 'center',\n display: 'flex',\n paddingLeft: $theme.sizing.scale600,\n paddingRight: $theme.sizing.scale600\n };\n }\n\n return {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: $theme.sizing.scale1600\n };\n});\nStyledArtworkContainer.displayName = \"StyledArtworkContainer\";\nexport var StyledLabelContent = styled('p', function (_ref4) {\n var $theme = _ref4.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.LabelMedium), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: 0,\n marginBottom: 0\n });\n});\nStyledLabelContent.displayName = \"StyledLabelContent\";\nexport var StyledLabelDescription = styled('p', function (_ref5) {\n var $theme = _ref5.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.ParagraphSmall), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: 0,\n marginBottom: 0\n });\n});\nStyledLabelDescription.displayName = \"StyledLabelDescription\";\nexport var StyledLabelSublistContent = styled('p', function (_ref6) {\n var $theme = _ref6.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.LabelMedium), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: $theme.sizing.scale500,\n marginBottom: $theme.sizing.scale500\n });\n});\nStyledLabelSublistContent.displayName = \"StyledLabelSublistContent\";\nexport var StyledHeadingRoot = styled('div', function (_ref7) {\n var $theme = _ref7.$theme;\n return {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n backgroundColor: $theme.colors.backgroundPrimary,\n overflow: 'hidden',\n minHeight: $theme.sizing.scale1600\n };\n});\nStyledHeadingRoot.displayName = \"StyledHeadingRoot\";\nexport var StyledHeadingContent = styled('div', function (_ref8) {\n var $theme = _ref8.$theme;\n return _objectSpread({\n flexGrow: 1,\n width: '100%',\n minWidth: 0,\n paddingTop: $theme.sizing.scale600,\n paddingBottom: $theme.sizing.scale300\n }, $theme.direction === 'rtl' ? {\n paddingLeft: $theme.sizing.scale600,\n marginRight: $theme.sizing.scale600\n } : {\n paddingRight: $theme.sizing.scale600,\n marginLeft: $theme.sizing.scale600\n });\n});\nStyledHeadingContent.displayName = \"StyledHeadingContent\";\nexport var StyledHeadingContentRow = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%'\n});\nStyledHeadingContentRow.displayName = \"StyledHeadingContentRow\";\nexport var StyledHeadingMainHeading = styled('p', // $FlowFixMe - suppressing due to webkit properties\nfunction (_ref9) {\n var _ref9$$maxLines = _ref9.$maxLines,\n $maxLines = _ref9$$maxLines === void 0 ? 1 : _ref9$$maxLines,\n $theme = _ref9.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.HeadingSmall), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: 0,\n marginBottom: 0,\n marginRight: $theme.sizing.scale600,\n display: '-webkit-box',\n '-webkit-line-clamp': $maxLines,\n '-webkit-box-orient': 'vertical',\n overflow: 'hidden'\n });\n});\nStyledHeadingMainHeading.displayName = \"StyledHeadingMainHeading\";\nexport var StyledHeadingSubHeading = styled('p', // $FlowFixMe - suppressing due to webkit properties\nfunction (_ref10) {\n var _ref10$$maxLines = _ref10.$maxLines,\n $maxLines = _ref10$$maxLines === void 0 ? 1 : _ref10$$maxLines,\n $theme = _ref10.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.ParagraphLarge), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: 0,\n marginBottom: 0,\n marginRight: $theme.sizing.scale600,\n display: '-webkit-box',\n '-webkit-line-clamp': $maxLines,\n '-webkit-box-orient': 'vertical',\n overflow: 'hidden'\n });\n});\nStyledHeadingSubHeading.displayName = \"StyledHeadingSubHeading\";\nexport var StyledHeadingEndEnhancerContainer = styled('div', function (_ref11) {\n var $isText = _ref11.$isText,\n $theme = _ref11.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.LabelMedium), {}, {\n display: 'flex',\n alignItems: $isText ? 'flex-end' : 'center',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n });\n});\nStyledHeadingEndEnhancerContainer.displayName = \"StyledHeadingEndEnhancerContainer\";\nexport var StyledHeadingEndEnhancerDescriptionContainer = styled('p', function (_ref12) {\n var $theme = _ref12.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.ParagraphMedium), {}, {\n marginTop: 0,\n marginBottom: 0,\n display: 'flex',\n alignItems: 'flex-start',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n });\n});\nStyledHeadingEndEnhancerDescriptionContainer.displayName = \"StyledHeadingEndEnhancerDescriptionContainer\";","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport { ARTWORK_SIZES } from './constants.js';\nexport function artworkSizeToValue(artworkSize, isSublist) {\n if (isSublist) {\n switch (artworkSize) {\n case ARTWORK_SIZES.LARGE:\n return 24;\n\n case ARTWORK_SIZES.SMALL:\n default:\n return 16;\n }\n }\n\n switch (artworkSize) {\n case ARTWORK_SIZES.SMALL:\n return 16;\n\n case ARTWORK_SIZES.LARGE:\n return 36;\n\n case ARTWORK_SIZES.MEDIUM:\n default:\n return 24;\n }\n}","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport accordion from '../accordion/locale.js';\nimport breadcrumbs from '../breadcrumbs/locale.js';\nimport datepicker from '../datepicker/locale.js';\nimport datatable from '../data-table/locale.js';\nimport buttongroup from '../button-group/locale.js';\nimport fileuploader from '../file-uploader/locale.js';\nimport menu from '../menu/locale.js';\nimport modal from '../modal/locale.js';\nimport drawer from '../drawer/locale.js';\nimport pagination from '../pagination/locale.js';\nimport select from '../select/locale.js';\nimport toast from '../toast/locale.js';\nvar en_US = {\n accordion: accordion,\n breadcrumbs: breadcrumbs,\n datepicker: datepicker,\n datatable: datatable,\n buttongroup: buttongroup,\n fileuploader: fileuploader,\n menu: menu,\n modal: modal,\n drawer: drawer,\n pagination: pagination,\n select: select,\n toast: toast\n};\nexport default en_US;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n collapse: 'Collapse',\n expand: 'Expand'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n ariaLabel: 'Breadcrumbs navigation'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n ariaLabel: 'Select a date.',\n ariaLabelRange: 'Select a date range.',\n ariaLabelCalendar: 'Calendar.',\n ariaRoleDescriptionCalendarMonth: 'Calendar month',\n previousMonth: 'Previous month.',\n nextMonth: 'Next month.',\n pastWeek: 'Past Week',\n pastMonth: 'Past Month',\n pastThreeMonths: 'Past 3 Months',\n pastSixMonths: 'Past 6 Months',\n pastYear: 'Past Year',\n pastTwoYears: 'Past 2 Years',\n screenReaderMessageInput: 'Press the down arrow key to interact with the calendar and select a date. Press the escape button to close the calendar.',\n selectedDate: 'Selected date is ${date}.',\n selectedDateRange: 'Selected date range is from ${startDate} to ${endDate}.',\n selectSecondDatePrompt: 'Select the second date.',\n quickSelectLabel: 'Choose a date range',\n quickSelectAriaLabel: 'Choose a date range',\n quickSelectPlaceholder: 'None',\n timeSelectEndLabel: 'End time',\n timeSelectStartLabel: 'Start time',\n timePickerAriaLabel12Hour: 'Select a time, 12-hour format.',\n timePickerAriaLabel24Hour: 'Select a time, 24-hour format.',\n timezonePickerAriaLabel: 'Select a timezone.',\n selectedStartDateLabel: 'Selected start date.',\n selectedEndDateLabel: 'Selected end date.',\n dateNotAvailableLabel: 'Not available.',\n dateAvailableLabel: \"It's available.\",\n selectedLabel: 'Selected.',\n chooseLabel: 'Choose'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n emptyState: 'No rows match the filter criteria defined. Please remove one or more filters to view more data.',\n loadingState: 'Loading Rows.',\n searchAriaLabel: 'Search by text',\n filterAdd: 'Add Filter',\n filterExclude: 'Exclude',\n filterApply: 'Apply',\n filterAppliedTo: 'filter applied to',\n optionsLabel: 'Select column to filter by',\n optionsSearch: 'Search for a column to filter by...',\n optionsEmpty: 'No columns available.',\n categoricalFilterSelectAll: 'Select All',\n categoricalFilterSelectClear: 'Clear',\n categoricalFilterEmpty: 'No Categories Found',\n datetimeFilterRange: 'Range',\n datetimeFilterRangeDatetime: 'Date, Time',\n datetimeFilterRangeDate: 'Date',\n datetimeFilterRangeTime: 'Time',\n datetimeFilterCategorical: 'Categorical',\n datetimeFilterCategoricalWeekday: 'Weekday',\n datetimeFilterCategoricalMonth: 'Month',\n datetimeFilterCategoricalQuarter: 'Quarter',\n datetimeFilterCategoricalHalf: 'Half',\n datetimeFilterCategoricalFirstHalf: 'H1',\n datetimeFilterCategoricalSecondHalf: 'H2',\n datetimeFilterCategoricalYear: 'Year',\n numericalFilterRange: 'Range',\n numericalFilterSingleValue: 'Single Value',\n booleanFilterTrue: 'true',\n booleanFilterFalse: 'false',\n booleanColumnTrueShort: 'T',\n booleanColumnFalseShort: 'F'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n ariaLabel: 'button group'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n dropFilesToUpload: 'Drop files here to upload...',\n or: '',\n browseFiles: 'Browse files',\n retry: 'Retry Upload',\n cancel: 'Cancel'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n noResultsMsg: 'No results',\n parentMenuItemAriaLabel: \"You are currently at an item that opens a nested listbox. Press right arrow to enter that element and left arrow to return.\"\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n close: 'Close'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n close: 'Close'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n prev: 'Prev',\n next: 'Next',\n preposition: 'of'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n // Remove noResultsMsg prop in the next major version\n noResultsMsg: 'No results found',\n placeholder: 'Select...',\n create: 'Create'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar locale = {\n close: 'Close'\n};\nexport default locale;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport * as React from 'react';\nimport extend from 'just-extend';\nimport en_US from './en_US.js';\nexport var LocaleContext = /*#__PURE__*/React.createContext(en_US);\n\nvar LocaleProvider = function LocaleProvider(props) {\n var locale = props.locale,\n children = props.children;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (locale.datepicker && locale.datepicker.timePickerAriaLabel) {\n console.warn('`timePickerAriaLabel` will be removed in v11 - please use timePickerAriaLabel12Hour and timePickerAriaLabel24Hour instead');\n }\n }\n\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: extend({}, en_US, locale)\n }, children);\n};\n\nexport default LocaleProvider;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport var STATE_CHANGE_TYPES = {\n click: 'click',\n moveUp: 'moveUp',\n moveDown: 'moveDown',\n mouseEnter: 'mouseEnter',\n mouseLeave: 'mouseLeave',\n focus: 'focus',\n reset: 'reset',\n character: 'character',\n enter: 'enter'\n};\nexport var KEY_STRINGS = {\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight',\n Enter: 'Enter',\n Space: ' ',\n Escape: 'Escape',\n Backspace: 'Backspace',\n Home: 'Home',\n End: 'End'\n};\nexport var OPTION_LIST_SIZE = {\n default: 'default',\n compact: 'compact'\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nexport var NestedMenuContext = /*#__PURE__*/React.createContext({\n addMenuToNesting: function addMenuToNesting() {},\n removeMenuFromNesting: function removeMenuFromNesting() {},\n getParentMenu: function getParentMenu() {},\n getChildMenu: function getChildMenu() {},\n mountRef: {\n current: null\n }\n});\n\nfunction isSame(a, b) {\n if (!a || !b) {\n return false;\n }\n\n return a.isSameNode(b);\n}\n\nvar NestedMenus = /*#__PURE__*/function (_React$Component) {\n _inherits(NestedMenus, _React$Component);\n\n var _super = _createSuper(NestedMenus);\n\n function NestedMenus() {\n var _this;\n\n _classCallCheck(this, NestedMenus);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n menus: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mountRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"addMenuToNesting\", function (ref) {\n // check offsetHeight to determine if component is visible in the dom (0 means hidden)\n // we need to do this so that when we renderAll, the hidden seo-only child-menus don't\n // register themselves which would break the nesting logic\n if (ref.current && ref.current.offsetHeight) {\n _this.setState(function (state) {\n return {\n menus: [].concat(_toConsumableArray(state.menus), [ref])\n };\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"removeMenuFromNesting\", function (ref) {\n _this.setState(function (state) {\n var nextMenus = state.menus.filter(function (r) {\n return r.current;\n }).filter(function (r) {\n return !isSame(r.current, ref.current);\n });\n return {\n menus: nextMenus\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"findMenuIndexByRef\", function (ref) {\n return _this.state.menus.findIndex(function (r) {\n return isSame(r.current, ref.current);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getParentMenu\", function (ref) {\n var index = _this.findMenuIndexByRef(ref) - 1;\n return _this.state.menus[index];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getChildMenu\", function (ref) {\n var index = _this.findMenuIndexByRef(ref) + 1;\n return _this.state.menus[index];\n });\n\n return _this;\n }\n\n _createClass(NestedMenus, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(NestedMenuContext.Provider, {\n value: {\n addMenuToNesting: this.addMenuToNesting,\n removeMenuFromNesting: this.removeMenuFromNesting,\n getParentMenu: this.getParentMenu,\n getChildMenu: this.getChildMenu,\n mountRef: this.mountRef\n }\n }, /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children, /*#__PURE__*/React.createElement(\"span\", {\n ref: this.mountRef\n })));\n }\n }]);\n\n return NestedMenus;\n}(React.Component);\n\nexport { NestedMenus as default };","function _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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport { NestedMenuContext } from './nested-menus.js';\nimport { Popover } from '../popover/index.js';\nimport { getOverrides, mergeOverrides } from '../helpers/overrides.js';\nexport default function MaybeChildMenu(props) {\n if (!props.getChildMenu) {\n return props.children;\n }\n\n var ChildMenu = props.getChildMenu(props.item);\n\n if (!ChildMenu) {\n return props.children;\n }\n\n var _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides;\n\n var _getOverrides = getOverrides(overrides.ChildMenuPopover, Popover),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n PopoverOverride = _getOverrides2[0],\n popoverProps = _getOverrides2[1];\n\n return /*#__PURE__*/React.createElement(NestedMenuContext.Consumer, null, function (ctx) {\n return /*#__PURE__*/React.createElement(PopoverOverride, _extends({\n focusLock: false,\n autoFocus: false,\n isOpen: props.isOpen,\n renderAll: props.renderAll,\n content: ChildMenu,\n ignoreBoundary: true,\n mountNode: ctx.mountRef.current ? ctx.mountRef.current : undefined,\n onClick: props.onClick,\n onMouseEnterDelay: 30,\n onMouseLeaveDelay: 30,\n onEsc: props.resetParentMenu,\n placement: \"rightTop\"\n }, popoverProps, {\n overrides: mergeOverrides({\n Body: {\n props: {\n // Adds mouseleave to popover body so that child menu closes when user mouses out.\n onMouseLeave: props.resetParentMenu,\n // Trap tabbing when focused on a child menu. Popover mounts the element at the end of\n // the html body by default. If a user was to tab to the next element it would navigate\n // to elements not within the immediate area surrounding the menu.\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === 9) {\n e.preventDefault();\n }\n }\n }\n }\n }, // $FlowFixMe - getOverrides' return type for props is {}\n popoverProps.overrides)\n }), props.children);\n });\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport { LocaleContext } from '../locale/index.js';\nimport { getOverrides } from '../helpers/overrides.js';\nimport { OPTION_LIST_SIZE } from './constants.js';\nimport MaybeChildMenu from './maybe-child-menu.js';\nimport { StyledListItem, StyledListItemAnchor } from './styled-components.js';\n\nfunction OptionList(props, ref) {\n var getChildMenu = props.getChildMenu,\n _props$getItemLabel = props.getItemLabel,\n getItemLabel = _props$getItemLabel === void 0 ? function (item) {\n return item ? item.label : '';\n } : _props$getItemLabel,\n item = props.item,\n _props$onClick = props.onClick,\n onClick = _props$onClick === void 0 ? function () {} : _props$onClick,\n _props$onMouseEnter = props.onMouseEnter,\n onMouseEnter = _props$onMouseEnter === void 0 ? function () {} : _props$onMouseEnter,\n _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides,\n _props$renderHrefAsAn = props.renderHrefAsAnchor,\n renderHrefAsAnchor = _props$renderHrefAsAn === void 0 ? true : _props$renderHrefAsAn,\n _props$resetMenu = props.resetMenu,\n resetMenu = _props$resetMenu === void 0 ? function () {} : _props$resetMenu,\n _props$size = props.size,\n size = _props$size === void 0 ? OPTION_LIST_SIZE.default : _props$size,\n $isHighlighted = props.$isHighlighted,\n renderAll = props.renderAll,\n restProps = _objectWithoutProperties(props, [\"getChildMenu\", \"getItemLabel\", \"item\", \"onClick\", \"onMouseEnter\", \"overrides\", \"renderHrefAsAnchor\", \"resetMenu\", \"size\", \"$isHighlighted\", \"renderAll\"]);\n\n var _getOverrides = getOverrides(overrides.ListItem, StyledListItem),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n ListItem = _getOverrides2[0],\n listItemProps = _getOverrides2[1];\n\n var _getOverrides3 = getOverrides(overrides.ListItemAnchor, StyledListItemAnchor),\n _getOverrides4 = _slicedToArray(_getOverrides3, 2),\n ListItemAnchor = _getOverrides4[0],\n listItemAnchorProps = _getOverrides4[1];\n\n var getItem = function getItem(item) {\n if (item.href && renderHrefAsAnchor) {\n return /*#__PURE__*/React.createElement(ListItemAnchor, _extends({\n $item: item,\n href: item.href\n }, listItemAnchorProps), getItemLabel(item));\n } else {\n return /*#__PURE__*/React.createElement(React.Fragment, null, getItemLabel(item));\n }\n };\n\n return /*#__PURE__*/React.createElement(LocaleContext.Consumer, null, function (locale) {\n return /*#__PURE__*/React.createElement(MaybeChildMenu, {\n getChildMenu: getChildMenu,\n isOpen: !!$isHighlighted,\n item: item,\n resetParentMenu: resetMenu,\n renderAll: renderAll,\n onClick: onClick,\n overrides: overrides\n }, /*#__PURE__*/React.createElement(ListItem, _extends({\n ref: ref,\n \"aria-label\": getChildMenu && getChildMenu(item) ? locale.menu.parentMenuItemAriaLabel : null,\n item: item,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n $size: size,\n $isHighlighted: $isHighlighted\n }, restProps, listItemProps), getItem(_objectSpread({\n isHighlighted: $isHighlighted\n }, item))));\n });\n}\n\nfunction areEqualShallow(a, b) {\n if (!a || !b) return false;\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction compare(prevProps, nextProps) {\n return prevProps.$isHighlighted === nextProps.$isHighlighted && prevProps.$isFocused === nextProps.$isFocused && areEqualShallow(prevProps.item, nextProps.item) && areEqualShallow(prevProps.overrides, nextProps.overrides) && prevProps.size === nextProps.size && prevProps.getItemLabel === nextProps.getItemLabel && prevProps.getChildMenu === nextProps.getChildMenu && prevProps.resetMenu === nextProps.resetMenu;\n}\n\nvar forwarded = /*#__PURE__*/React.forwardRef(OptionList);\nforwarded.displayName = 'OptionList';\nexport default /*#__PURE__*/React.memo(forwarded, compare);","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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 _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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport { LocaleContext } from '../locale/index.js'; // Components\n\nimport { StyledList, StyledEmptyState, StyledOptgroupHeader } from './styled-components.js';\nimport OptionList from './option-list.js';\nimport { getOverrides } from '../helpers/overrides.js'; // Types\n\nimport { isFocusVisible, forkFocus, forkBlur } from '../utils/focusVisible.js';\nexport default function Menu(props) {\n var _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides,\n _props$ariaLabel = props.ariaLabel,\n ariaLabel = _props$ariaLabel === void 0 ? 'Menu' : _props$ariaLabel,\n _props$rootRef = props.rootRef,\n rootRef = _props$rootRef === void 0 ? /*#__PURE__*/React.createRef() : _props$rootRef,\n _props$focusMenu = props.focusMenu,\n focusMenu = _props$focusMenu === void 0 ? function () {} : _props$focusMenu,\n _props$unfocusMenu = props.unfocusMenu,\n unfocusMenu = _props$unfocusMenu === void 0 ? function () {} : _props$unfocusMenu,\n _props$handleMouseLea = props.handleMouseLeave,\n handleMouseLeave = _props$handleMouseLea === void 0 ? function () {} : _props$handleMouseLea,\n _props$handleKeyDown = props.handleKeyDown,\n handleKeyDown = _props$handleKeyDown === void 0 ? function (event) {} : _props$handleKeyDown,\n _props$renderAll = props.renderAll,\n renderAll = _props$renderAll === void 0 ? false : _props$renderAll;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focusVisible = _React$useState2[0],\n setFocusVisible = _React$useState2[1];\n\n var handleFocus = function handleFocus(event) {\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n }\n };\n\n var handleBlur = function handleBlur(event) {\n if (focusVisible !== false) {\n setFocusVisible(false);\n }\n };\n\n var _getOverrides = getOverrides(overrides.List, StyledList),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n List = _getOverrides2[0],\n listProps = _getOverrides2[1];\n\n var _getOverrides3 = getOverrides(overrides.Option, OptionList),\n _getOverrides4 = _slicedToArray(_getOverrides3, 2),\n Option = _getOverrides4[0],\n optionProps = _getOverrides4[1];\n\n var _getOverrides5 = getOverrides(overrides.EmptyState, StyledEmptyState),\n _getOverrides6 = _slicedToArray(_getOverrides5, 2),\n EmptyState = _getOverrides6[0],\n emptyStateProps = _getOverrides6[1];\n\n var _getOverrides7 = getOverrides(overrides.OptgroupHeader, StyledOptgroupHeader),\n _getOverrides8 = _slicedToArray(_getOverrides7, 2),\n OptgroupHeader = _getOverrides8[0],\n optgroupHeaderProps = _getOverrides8[1];\n\n var groupedItems = Array.isArray(props.items) ? {\n __ungrouped: props.items\n } : props.items;\n var optgroups = Object.keys(groupedItems);\n\n var _optgroups$reduce = optgroups.reduce(function (_ref, optgroup) {\n var _ref2 = _slicedToArray(_ref, 2),\n els = _ref2[0],\n itemIndex = _ref2[1];\n\n if (optgroup !== '__ungrouped') {\n els.push( /*#__PURE__*/React.createElement(OptgroupHeader, _extends({\n key: optgroup\n }, optgroupHeaderProps), optgroup));\n }\n\n var groupItems = groupedItems[optgroup].map(function (item, index) {\n itemIndex = itemIndex + 1;\n var _props$getRequiredIte = props.getRequiredItemProps,\n getRequiredItemProps = _props$getRequiredIte === void 0 ? function (item, index) {\n return {};\n } : _props$getRequiredIte;\n\n var _getRequiredItemProps = getRequiredItemProps(item, itemIndex),\n disabled = _getRequiredItemProps.disabled,\n isFocused = _getRequiredItemProps.isFocused,\n isHighlighted = _getRequiredItemProps.isHighlighted,\n _getRequiredItemProps2 = _getRequiredItemProps.resetMenu,\n resetMenu = _getRequiredItemProps2 === void 0 ? function () {} : _getRequiredItemProps2,\n restProps = _objectWithoutProperties(_getRequiredItemProps, [\"disabled\", \"isFocused\", \"isHighlighted\", \"resetMenu\"]);\n\n return /*#__PURE__*/React.createElement(Option, _extends({\n renderAll: renderAll,\n key: itemIndex,\n item: item,\n overrides: props.overrides,\n resetMenu: resetMenu,\n role: \"option\",\n $disabled: disabled,\n $isFocused: isFocused,\n $isHighlighted: isHighlighted,\n \"aria-disabled\": disabled,\n \"aria-selected\": isHighlighted && isFocused\n }, restProps, optionProps));\n });\n return [els.concat(groupItems), itemIndex];\n }, [[], -1]),\n _optgroups$reduce2 = _slicedToArray(_optgroups$reduce, 1),\n elements = _optgroups$reduce2[0];\n\n var isEmpty = optgroups.every(function (optgroup) {\n return !groupedItems[optgroup].length;\n });\n return /*#__PURE__*/React.createElement(LocaleContext.Consumer, null, function (locale) {\n return /*#__PURE__*/React.createElement(List, _extends({\n \"aria-activedescendant\": props.activedescendantId || null,\n role: \"listbox\",\n \"aria-label\": ariaLabel,\n ref: rootRef,\n onMouseEnter: focusMenu,\n onMouseLeave: handleMouseLeave,\n onMouseOver: focusMenu,\n onFocus: forkFocus({\n onFocus: focusMenu\n }, handleFocus),\n onBlur: forkBlur({\n onBlur: unfocusMenu\n }, handleBlur),\n onKeyDown: function onKeyDown(event) {\n if (props.isFocused) {\n handleKeyDown(event);\n }\n },\n tabIndex: 0,\n \"data-baseweb\": \"menu\",\n $isFocusVisible: focusVisible\n }, listProps), isEmpty ? /*#__PURE__*/React.createElement(EmptyState, _extends({\n \"aria-live\": \"polite\",\n \"aria-atomic\": true\n }, emptyStateProps), props.noResultsMsg || locale.menu.noResultsMsg) : elements);\n });\n}","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/* eslint-disable import/prefer-default-export */\n// Helps scroll a list item into view when cycling through list via\n// keybindings and highlighted item is not in view.\n// Previously, this util had been using `scrollIntoView`. The issue with that method is that\n// it will not only scroll the parent scroll but also the window scroll bar - causing a jump.\n// problem description https://lists.w3.org/Archives/Public/www-style/2014Jul/0386.html\n// CHASE: I've noticed some performance issues when testing this with many items in the list.\n// I imagine the browser can debounce the `node.scrollIntoView` calls. Callers of this function\n// will likely want to debounce themselves.\nexport function scrollItemIntoView(child, parent, isFirst, isLast) {\n var scrollAlignInView = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'auto';\n if (!child) return;\n var childRect = child.getBoundingClientRect();\n var parentRect = parent.getBoundingClientRect(); // while scrolling down, if element is below view\n\n if (childRect.bottom > parentRect.bottom) {\n if (isLast) {\n parent.scrollTop = parent.scrollHeight - parentRect.height;\n } else {\n var targetBottom = child.offsetTop + childRect.height;\n parent.scrollTop = targetBottom - (scrollAlignInView === 'center' ? Math.round((parentRect.height + childRect.height) / 2) : parentRect.height);\n } // while scrolling up, if element is above view\n\n } else if (childRect.top < parentRect.top) {\n if (isFirst) {\n parent.scrollTop = 0;\n } else {\n parent.scrollTop = child.offsetTop - (scrollAlignInView === 'center' ? Math.round((parentRect.height - childRect.height) / 2) : 0);\n }\n }\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react'; // Files\n\nimport { STATE_CHANGE_TYPES, KEY_STRINGS } from './constants.js';\nimport { scrollItemIntoView } from './utils.js'; // Types\n\nimport { useUIDSeed } from 'react-uid';\nvar DEFAULT_PROPS = {\n // keeping it in defaultProps to satisfy Flow\n initialState: {\n // We start the index at -1 to indicate that no highlighting exists initially\n highlightedIndex: -1,\n isFocused: false\n },\n typeAhead: true,\n keyboardControlNode: {\n current: null\n },\n stateReducer: function stateReducer(changeType, changes) {\n return changes;\n },\n onItemSelect: function onItemSelect() {},\n getRequiredItemProps: function getRequiredItemProps() {\n return {};\n },\n children: function children() {\n return null;\n },\n // from nested-menus context\n addMenuToNesting: function addMenuToNesting() {},\n removeMenuFromNesting: function removeMenuFromNesting() {},\n getParentMenu: function getParentMenu() {},\n getChildMenu: function getChildMenu() {},\n forceHighlight: false\n};\n\nvar MenuStatefulContainerInner = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuStatefulContainerInner, _React$Component);\n\n var _super = _createSuper(MenuStatefulContainerInner);\n\n function MenuStatefulContainerInner() {\n var _this;\n\n _classCallCheck(this, MenuStatefulContainerInner);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", _objectSpread(_objectSpread({}, _this.constructor.defaultProps.initialState), _this.props.initialState));\n\n _defineProperty(_assertThisInitialized(_this), \"rootRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"keyboardControlNode\", _this.props.keyboardControlNode.current);\n\n _defineProperty(_assertThisInitialized(_this), \"refList\", []);\n\n _defineProperty(_assertThisInitialized(_this), \"optionIds\", []);\n\n _defineProperty(_assertThisInitialized(_this), \"typeAheadChars\", '');\n\n _defineProperty(_assertThisInitialized(_this), \"typeAheadTimeOut\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n switch (event.key) {\n case KEY_STRINGS.ArrowUp:\n case KEY_STRINGS.ArrowDown:\n case KEY_STRINGS.ArrowLeft:\n case KEY_STRINGS.ArrowRight:\n case KEY_STRINGS.Home:\n case KEY_STRINGS.End:\n _this.handleArrowKey(event);\n\n break;\n\n case KEY_STRINGS.Enter:\n if (event.keyCode === 229) {\n // ref.\n // https://github.com/JedWatson/react-select/blob/e12b42b0e7598ec4a96a1a6480e0b2b4c7dc03e3/packages/react-select/src/Select.js#L1209\n break;\n }\n\n _this.handleEnterKey(event);\n\n break;\n\n default:\n if (_this.props.typeAhead) {\n clearTimeout(_this.typeAheadTimeOut);\n\n _this.handleAlphaDown(event);\n }\n\n break;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAlphaDown\", function (event) {\n var rootRef = _this.props.rootRef ? _this.props.rootRef : _this.rootRef;\n var prevIndex = _this.state.highlightedIndex;\n _this.typeAheadChars += event.key;\n _this.typeAheadTimeOut = setTimeout(function () {\n _this.typeAheadChars = '';\n }, 500);\n var nextIndex = prevIndex;\n event.preventDefault();\n\n var list = _this.getItems();\n\n if (list.length === 0 || !('label' in list[0])) return;\n var notMatch = true;\n\n for (var n = 0; n < list.length; n++) {\n var label = list[n].label;\n\n if (label && label.toUpperCase && label.toUpperCase().indexOf(_this.typeAheadChars.toUpperCase()) === 0) {\n nextIndex = n;\n notMatch = false;\n break;\n }\n }\n\n if (notMatch) {\n for (var _n = 0; _n < list.length; _n++) {\n var _label = list[_n].label;\n\n if (_label && _label.toUpperCase && _label.toUpperCase().indexOf(_this.typeAheadChars.toUpperCase()) > 0) {\n nextIndex = _n;\n break;\n }\n }\n }\n\n _this.internalSetState(STATE_CHANGE_TYPES.character, {\n highlightedIndex: nextIndex\n });\n\n if (_this.refList[nextIndex]) {\n scrollItemIntoView(_this.refList[nextIndex].current, // $FlowFixMe\n rootRef.current, nextIndex === 0, nextIndex === list.length - 1);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleArrowKey\", function (event) {\n var rootRef = _this.props.rootRef ? _this.props.rootRef : _this.rootRef;\n var prevIndex = _this.state.highlightedIndex;\n var nextIndex = prevIndex;\n\n if (event.key === KEY_STRINGS.ArrowUp) {\n event.preventDefault();\n nextIndex = Math.max(0, prevIndex - 1);\n\n _this.internalSetState(STATE_CHANGE_TYPES.moveUp, {\n highlightedIndex: nextIndex\n });\n } else if (event.key === KEY_STRINGS.ArrowDown) {\n event.preventDefault();\n nextIndex = Math.min(prevIndex + 1, _this.getItems().length - 1);\n\n _this.internalSetState(STATE_CHANGE_TYPES.moveDown, {\n highlightedIndex: nextIndex\n });\n } else if (event.key === KEY_STRINGS.Home) {\n event.preventDefault();\n nextIndex = 0;\n\n _this.internalSetState(STATE_CHANGE_TYPES.moveUp, {\n highlightedIndex: nextIndex\n });\n } else if (event.key === KEY_STRINGS.End) {\n event.preventDefault();\n nextIndex = _this.getItems().length - 1;\n\n _this.internalSetState(STATE_CHANGE_TYPES.moveDown, {\n highlightedIndex: nextIndex\n });\n } else if (event.key === KEY_STRINGS.ArrowLeft) {\n if (_this.props.getParentMenu) {\n var parent = _this.props.getParentMenu(rootRef);\n\n if (parent && parent.current) {\n parent.current.focus();\n }\n }\n } else if (event.key === KEY_STRINGS.ArrowRight) {\n if (_this.props.getChildMenu) {\n var child = _this.props.getChildMenu(rootRef);\n\n if (child && child.current) {\n child.current.focus();\n }\n }\n }\n\n if (_this.refList[nextIndex]) {\n scrollItemIntoView(_this.refList[nextIndex].current, // $FlowFixMe\n rootRef.current, nextIndex === 0, nextIndex === _this.getItems().length - 1);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleEnterKey\", function (event) {\n var onItemSelect = _this.props.onItemSelect;\n var highlightedIndex = _this.state.highlightedIndex;\n\n var items = _this.getItems();\n\n if (items[highlightedIndex] && onItemSelect && !items[highlightedIndex].disabled) {\n event.preventDefault();\n onItemSelect({\n item: items[highlightedIndex],\n event: event\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleItemClick\", function (index, item, event) {\n if (_this.props.onItemSelect && !item.disabled) {\n _this.props.onItemSelect({\n item: item,\n event: event\n });\n\n _this.internalSetState(STATE_CHANGE_TYPES.click, {\n highlightedIndex: index,\n activedescendantId: _this.optionIds[index]\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (index) {\n _this.internalSetState(STATE_CHANGE_TYPES.mouseEnter, {\n highlightedIndex: index,\n activedescendantId: _this.optionIds[index]\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function () {\n var rootRef = _this.props.rootRef ? _this.props.rootRef : _this.rootRef;\n\n var childMenu = _this.props.getChildMenu && _this.props.getChildMenu(rootRef);\n\n if (!_this.props.forceHighlight && !childMenu) {\n _this.internalSetState(STATE_CHANGE_TYPES.mouseLeave, {\n highlightedIndex: -1\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRequiredItemProps\", function (item, index) {\n var itemRef = _this.refList[index];\n\n if (!itemRef) {\n itemRef = /*#__PURE__*/React.createRef();\n _this.refList[index] = itemRef;\n _this.optionIds[index] = _this.props.uidSeed(index);\n }\n\n var _this$props$getRequir = _this.props.getRequiredItemProps(item, index),\n disabledVal = _this$props$getRequir.disabled,\n requiredItemProps = _objectWithoutProperties(_this$props$getRequir, [\"disabled\"]);\n\n var disabled = typeof disabledVal === 'boolean' ? disabledVal : !!item.disabled;\n return _objectSpread(_objectSpread({\n id: requiredItemProps.id || _this.optionIds[index],\n disabled: disabled,\n ref: itemRef,\n isFocused: _this.state.isFocused,\n isHighlighted: _this.state.highlightedIndex === index,\n resetMenu: _this.resetMenu\n }, disabled ? {} : {\n onClick: _this.handleItemClick.bind(_assertThisInitialized(_this), index, item),\n onMouseEnter: _this.handleMouseEnter.bind(_assertThisInitialized(_this), index)\n }), requiredItemProps);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"focusMenu\", function (event) {\n var rootRef = _this.props.rootRef ? _this.props.rootRef : _this.rootRef;\n\n if (!_this.state.isFocused && rootRef.current && // $FlowFixMe\n rootRef.current.contains(event.target)) {\n if (_this.state.highlightedIndex < 0) {\n _this.internalSetState(STATE_CHANGE_TYPES.focus, {\n isFocused: true,\n highlightedIndex: 0\n });\n } else {\n _this.internalSetState(STATE_CHANGE_TYPES.focus, {\n isFocused: true\n });\n }\n\n rootRef.current.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unfocusMenu\", function () {\n _this.internalSetState(STATE_CHANGE_TYPES.focus, {\n isFocused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resetMenu\", function () {\n _this.internalSetState(STATE_CHANGE_TYPES.reset, {\n isFocused: false,\n highlightedIndex: -1,\n activedescendantId: null\n });\n });\n\n return _this;\n }\n\n _createClass(MenuStatefulContainerInner, [{\n key: \"getItems\",\n value: function getItems() {\n var _this2 = this;\n\n if (Array.isArray(this.props.items)) {\n return this.props.items;\n }\n\n var optgroups = Object.keys(this.props.items);\n return optgroups.reduce(function (output, optgroup) {\n // $FlowFixMe already checked above that items is grouped shape\n return output.concat(_this2.props.items[optgroup]);\n }, []);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var rootRef = this.props.rootRef ? this.props.rootRef : this.rootRef;\n\n if (typeof document !== 'undefined') {\n if (rootRef.current\n /** This condition added to satisfy Flow */\n && this.state.highlightedIndex > -1 && this.refList[this.state.highlightedIndex]) {\n scrollItemIntoView(this.refList[this.state.highlightedIndex].current, rootRef.current, this.state.highlightedIndex === 0, this.state.highlightedIndex === this.getItems().length - 1, 'center');\n }\n\n if (this.state.isFocused) {\n if (this.keyboardControlNode) {\n this.keyboardControlNode.addEventListener('keydown', this.onKeyDown);\n }\n }\n }\n\n this.props.addMenuToNesting && this.props.addMenuToNesting(rootRef);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var rootRef = this.props.rootRef ? this.props.rootRef : this.rootRef;\n\n if (typeof document !== 'undefined') {\n if (this.keyboardControlNode) this.keyboardControlNode.removeEventListener('keydown', this.onKeyDown);\n }\n\n this.props.removeMenuFromNesting && this.props.removeMenuFromNesting(rootRef);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(_, prevState) {\n if (typeof document !== 'undefined') {\n if (!prevState.isFocused && this.state.isFocused) {\n if (this.keyboardControlNode) this.keyboardControlNode.addEventListener('keydown', this.onKeyDown);\n } else if (prevState.isFocused && !this.state.isFocused) {\n if (this.keyboardControlNode) this.keyboardControlNode.removeEventListener('keydown', this.onKeyDown);\n }\n }\n\n var range = this.getItems().length;\n\n if (this.props.forceHighlight && this.state.highlightedIndex === -1 && range > 0) {\n this.internalSetState(STATE_CHANGE_TYPES.enter, {\n highlightedIndex: 0\n });\n }\n\n if (range === 0 && this.state.highlightedIndex !== -1) {\n this.internalSetState(STATE_CHANGE_TYPES.enter, {\n highlightedIndex: -1\n });\n } else if (this.state.highlightedIndex >= range) {\n this.internalSetState(STATE_CHANGE_TYPES.enter, {\n highlightedIndex: 0\n });\n }\n } // One array to hold all of list item refs\n\n }, {\n key: \"internalSetState\",\n value: // Internal set state function that will also invoke stateReducer\n function internalSetState(changeType, changes) {\n var stateReducer = this.props.stateReducer;\n\n if (this.props.onActiveDescendantChange && typeof changes.highlightedIndex === 'number' && this.state.highlightedIndex !== changes.highlightedIndex) {\n this.props.onActiveDescendantChange(this.optionIds[changes.highlightedIndex]);\n }\n\n this.setState(stateReducer(changeType, changes, this.state));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this; // omit the stateful-container's props and don't pass it down\n // to the children (stateless menu)\n\n\n var _this$props = this.props,\n initialState = _this$props.initialState,\n stateReducer = _this$props.stateReducer,\n children = _this$props.children,\n onItemSelect = _this$props.onItemSelect,\n addMenuToNesting = _this$props.addMenuToNesting,\n removeMenuFromNesting = _this$props.removeMenuFromNesting,\n getParentMenu = _this$props.getParentMenu,\n getChildMenu = _this$props.getChildMenu,\n forceHighlight = _this$props.forceHighlight,\n restProps = _objectWithoutProperties(_this$props, [\"initialState\", \"stateReducer\", \"children\", \"onItemSelect\", \"addMenuToNesting\", \"removeMenuFromNesting\", \"getParentMenu\", \"getChildMenu\", \"forceHighlight\"]);\n\n return this.props.children(_objectSpread(_objectSpread({}, restProps), {}, {\n rootRef: this.props.rootRef ? this.props.rootRef : this.rootRef,\n activedescendantId: this.optionIds[this.state.highlightedIndex],\n getRequiredItemProps: function getRequiredItemProps(item, index) {\n return _this3.getRequiredItemProps(item, index);\n },\n handleMouseLeave: this.handleMouseLeave,\n highlightedIndex: this.state.highlightedIndex,\n isFocused: this.state.isFocused,\n handleKeyDown: this.props.keyboardControlNode.current ? function (event) {} : this.onKeyDown,\n focusMenu: this.focusMenu,\n unfocusMenu: this.unfocusMenu\n }));\n }\n }]);\n\n return MenuStatefulContainerInner;\n}(React.Component); // Remove when MenuStatefulContainer is converted to a functional component.\n\n\n_defineProperty(MenuStatefulContainerInner, \"defaultProps\", DEFAULT_PROPS);\n\nvar MenuStatefulContainer = function MenuStatefulContainer(props) {\n return /*#__PURE__*/React.createElement(MenuStatefulContainerInner, _extends({\n uidSeed: useUIDSeed()\n }, props));\n};\n\nMenuStatefulContainer.defaultProps = DEFAULT_PROPS;\nexport default MenuStatefulContainer;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/* eslint-disable react/prefer-stateless-function */\n\n\nimport * as React from 'react';\nimport Menu from './menu.js';\nimport { NestedMenuContext } from './nested-menus.js';\nimport StatefulContainer from './stateful-container.js';\n\nvar StatefulMenu = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(StatefulMenu, _React$PureComponent);\n\n var _super = _createSuper(StatefulMenu);\n\n function StatefulMenu() {\n _classCallCheck(this, StatefulMenu);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(StatefulMenu, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n overrides = _this$props.overrides,\n props = _objectWithoutProperties(_this$props, [\"overrides\"]);\n\n return /*#__PURE__*/React.createElement(NestedMenuContext.Consumer, null, function (ctx) {\n return /*#__PURE__*/React.createElement(StatefulContainer, _extends({}, ctx, props), function (renderProps) {\n return /*#__PURE__*/React.createElement(Menu, _extends({}, renderProps, {\n overrides: overrides\n }));\n });\n });\n }\n }]);\n\n return StatefulMenu;\n}(React.PureComponent);\n\nexport { StatefulMenu as default };","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport { styled, withWrapper } from '../styles/index.js';\nimport { OPTION_LIST_SIZE } from './constants.js';\nexport var StyledList = styled('ul', function (_ref) {\n var $theme = _ref.$theme,\n $isFocusVisible = _ref.$isFocusVisible;\n return {\n backgroundColor: $theme.colors.menuFill,\n position: 'relative',\n marginTop: 0,\n marginBottom: 0,\n marginLeft: 0,\n marginRight: 0,\n paddingTop: $theme.sizing.scale300,\n paddingBottom: $theme.sizing.scale300,\n paddingLeft: 0,\n paddingRight: 0,\n borderTopLeftRadius: $theme.borders.popoverBorderRadius,\n borderTopRightRadius: $theme.borders.popoverBorderRadius,\n borderBottomRightRadius: $theme.borders.popoverBorderRadius,\n borderBottomLeftRadius: $theme.borders.popoverBorderRadius,\n boxShadow: $theme.lighting.shadow600,\n overflow: 'auto',\n ':focus': {\n outline: $isFocusVisible ? \"3px solid \".concat($theme.colors.accent) : 'none'\n }\n };\n});\nStyledList.displayName = \"StyledList\";\n\nfunction getFontColor(props) {\n if (props.$disabled) {\n return props.$theme.colors.menuFontDisabled;\n }\n\n if (props.$isHighlighted && props.$isFocused) {\n return props.$theme.colors.menuFontHighlighted;\n }\n\n if (props.$isHighlighted && !props.$isFocused) {\n return props.$theme.colors.menuFontSelected;\n }\n\n return props.$theme.colors.menuFontDefault;\n}\n\nfunction getBackgroundColor(props) {\n if (props.$disabled) {\n return 'transparent';\n }\n\n if (props.$isHighlighted) {\n return props.$theme.colors.menuFillHover;\n }\n\n return 'transparent';\n}\n\nexport var StyledEmptyState = styled('li', function (props) {\n var $theme = props.$theme,\n $size = props.$size;\n return _objectSpread(_objectSpread({}, $size === OPTION_LIST_SIZE.compact ? $theme.typography.font100 : $theme.typography.font200), {}, {\n position: 'relative',\n display: 'block',\n color: $theme.colors.menuFontDisabled,\n textAlign: 'center',\n cursor: 'not-allowed',\n backgroundColor: 'transparent',\n marginBottom: 0,\n paddingTop: $theme.sizing.scale800,\n paddingBottom: $theme.sizing.scale800,\n paddingRight: $theme.sizing.scale800,\n paddingLeft: $theme.sizing.scale800\n });\n});\nStyledEmptyState.displayName = \"StyledEmptyState\";\nexport var StyledOptgroupHeader = styled('li', function (props) {\n var paddingX = props.$theme.sizing.scale300;\n var paddingY = props.$theme.sizing.scale200;\n return _objectSpread(_objectSpread({}, props.$theme.typography.font250), {}, {\n color: props.$theme.colors.colorPrimary,\n paddingTop: paddingY,\n paddingBottom: paddingY,\n paddingRight: paddingX,\n paddingLeft: paddingX\n });\n});\nStyledOptgroupHeader.displayName = \"StyledOptgroupHeader\";\nexport var StyledListItemAnchor = styled('a', function (props) {\n return {\n display: 'block',\n color: getFontColor(props)\n };\n});\nStyledListItemAnchor.displayName = \"StyledListItemAnchor\";\nexport var StyledListItemElement = styled('li', function (props) {\n var $disabled = props.$disabled,\n $theme = props.$theme,\n $size = props.$size;\n return _objectSpread(_objectSpread({}, $size === OPTION_LIST_SIZE.compact ? $theme.typography.font100 : $theme.typography.font200), {}, {\n position: 'relative',\n display: 'block',\n color: getFontColor(props),\n cursor: $disabled ? 'not-allowed' : 'pointer',\n backgroundColor: getBackgroundColor(props),\n transitionProperty: 'color, background-color',\n transitionDuration: $theme.animation.timing200,\n transitionTimingFunction: $theme.animation.easeOutCurve,\n marginBottom: 0,\n paddingTop: $size === OPTION_LIST_SIZE.compact ? $theme.sizing.scale100 : $theme.sizing.scale300,\n paddingBottom: $size === OPTION_LIST_SIZE.compact ? $theme.sizing.scale100 : $theme.sizing.scale300,\n paddingRight: $size === OPTION_LIST_SIZE.compact ? $theme.sizing.scale900 : $theme.sizing.scale600,\n paddingLeft: $size === OPTION_LIST_SIZE.compact ? $theme.sizing.scale900 : $theme.sizing.scale600,\n ':focus': {\n outline: 'none'\n }\n });\n});\nStyledListItemElement.displayName = \"StyledListItemElement\";\nexport var StyledListItem = withWrapper(StyledListItemElement, function (Styled) {\n return function StyledListItem(_ref2) {\n var item = _ref2.item,\n restProps = _objectWithoutProperties(_ref2, [\"item\"]);\n\n return /*#__PURE__*/React.createElement(Styled, restProps);\n };\n});\nexport var StyledListItemProfile = styled('li', function (_ref3) {\n var $theme = _ref3.$theme;\n return {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n paddingTop: $theme.sizing.scale300,\n paddingBottom: $theme.sizing.scale300,\n paddingRight: $theme.sizing.scale800,\n paddingLeft: $theme.sizing.scale800,\n transitionProperty: 'color, background-color',\n transitionDuration: $theme.animation.timing200,\n transitionTimingFunction: $theme.animation.easeOutCurve,\n ':hover': {\n backgroundColor: $theme.colors.menuFillHover\n }\n };\n});\nStyledListItemProfile.displayName = \"StyledListItemProfile\";\nexport var StyledProfileImgContainer = styled('div', {\n width: '60px',\n height: '60px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n});\nStyledProfileImgContainer.displayName = \"StyledProfileImgContainer\";\nexport var StyledProfileImg = styled('img', {\n width: '100%',\n height: '100%',\n borderTopLeftRadius: '50%',\n borderTopRightRadius: '50%',\n borderBottomRightRadius: '50%',\n borderBottomLeftRadius: '50%'\n});\nStyledProfileImg.displayName = \"StyledProfileImg\";\nexport var StyledProfileLabelsContainer = styled('div', function (_ref4) {\n var _ref4$$theme = _ref4.$theme,\n direction = _ref4$$theme.direction,\n sizing = _ref4$$theme.sizing;\n return _objectSpread({\n alignSelf: direction === 'rtl' ? 'flex-end' : 'flex-start',\n display: 'flex',\n flexDirection: 'column'\n }, direction === 'rtl' ? {\n marginRight: sizing.scale600\n } : {\n marginLeft: sizing.scale600\n });\n});\nStyledProfileLabelsContainer.displayName = \"StyledProfileLabelsContainer\";\nexport var StyledProfileTitle = styled('h6', function (_ref5) {\n var $theme = _ref5.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.font350), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: 0,\n marginBottom: 0,\n marginLeft: 0,\n marginRight: 0\n });\n});\nStyledProfileTitle.displayName = \"StyledProfileTitle\";\nexport var StyledProfileSubtitle = styled('p', function (_ref6) {\n var $theme = _ref6.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.font200), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: 0,\n marginBottom: 0,\n marginLeft: 0,\n marginRight: 0\n });\n});\nStyledProfileSubtitle.displayName = \"StyledProfileSubtitle\";\nexport var StyledProfileBody = styled('p', function (_ref7) {\n var $theme = _ref7.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.font100), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: 0,\n marginBottom: 0,\n marginLeft: 0,\n marginRight: 0\n });\n});\nStyledProfileBody.displayName = \"StyledProfileBody\";","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport var PLACEMENT = {\n auto: 'auto',\n topLeft: 'topLeft',\n top: 'top',\n topRight: 'topRight',\n rightTop: 'rightTop',\n right: 'right',\n rightBottom: 'rightBottom',\n bottomRight: 'bottomRight',\n bottom: 'bottom',\n bottomLeft: 'bottomLeft',\n leftBottom: 'leftBottom',\n left: 'left',\n leftTop: 'leftTop'\n};\nexport var TRIGGER_TYPE = {\n click: 'click',\n hover: 'hover'\n};\nexport var STATE_CHANGE_TYPE = {\n open: 'open',\n close: 'close'\n};\nexport var ACCESSIBILITY_TYPE = {\n none: 'none',\n menu: 'menu',\n tooltip: 'tooltip'\n};\nexport var POPOVER_MARGIN = 8;\nexport var ARROW_SIZE = 6;\nexport var ANIMATE_OUT_TIME = 0;\nexport var ANIMATE_IN_TIME = 20;\n/**\n * Since we use a 45-degree rotated div to render the arrow, the\n * width/height of this div is different than the arrow size itself\n *\n * The arrow size is essentially half the diagonal of the rotated div,\n * using pythagorean theorem:\n * width^2 + height^2 = (arrow_size * 2)^2\n * In this case width = height so:\n * 2 * width^2 = (arrow_size * 2)^2\n * Simplifies to:\n * width = √((arrow_size * 2)^2 / 2)\n */\n\nexport var ARROW_WIDTH = Math.ceil(Math.sqrt(Math.pow(ARROW_SIZE * 2, 2) / 2));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as constants from 'focus-lock/constants';\nimport { inlineProp } from './util';\nimport { mediumEffect } from './medium';\nexport var useFocusInside = function useFocusInside(observedRef) {\n React.useEffect(function () {\n var enabled = true;\n mediumEffect.useMedium(function (car) {\n var observed = observedRef && observedRef.current;\n\n if (enabled && observed) {\n if (!car.focusInside(observed)) {\n car.moveFocusInside(observed, null);\n }\n }\n });\n return function () {\n enabled = false;\n };\n }, [observedRef]);\n};\n\nfunction MoveFocusInside(_ref) {\n var isDisabled = _ref.disabled,\n className = _ref.className,\n children = _ref.children;\n var ref = React.useRef(null);\n useFocusInside(isDisabled ? undefined : ref);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, inlineProp(constants.FOCUS_AUTO, !isDisabled), {\n ref: ref,\n className: className\n }), children);\n}\n\nMoveFocusInside.defaultProps = {\n disabled: false,\n className: undefined\n};\nexport default MoveFocusInside;","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\n\n\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\n}\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n\n\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _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 * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\n}\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n } // Add paddings\n\n\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n\n\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\n}\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\n\n\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\n });\n}\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\n\n\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n\n var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n\n return isRequired;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n }); // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n } // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\n\n\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\n\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n }); // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport function toPopperPlacement(placement) {\n return placement.replace(/(Top|Left)$/, '-start').replace(/(Right|Bottom)$/, '-end');\n}\n/**\n * Takes the offset passed from popper.js and normalizes it\n */\n\nexport function parsePopperOffset(offset) {\n return {\n top: Math.floor(offset.top || 0),\n left: Math.floor(offset.left || 0)\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport Popper from 'popper.js';\nimport { toPopperPlacement, parsePopperOffset } from './utils.js';\nimport { TETHER_PLACEMENT } from './constants.js';\n\nvar Tether = /*#__PURE__*/function (_React$Component) {\n _inherits(Tether, _React$Component);\n\n var _super = _createSuper(Tether);\n\n function Tether() {\n var _this;\n\n _classCallCheck(this, Tether);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"popper\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"popperHeight\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"popperWidth\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"anchorHeight\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"anchorWidth\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isMounted: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopperUpdate\", function (data) {\n var normalizedOffsets = {\n popper: parsePopperOffset(data.offsets.popper),\n arrow: data.offsets.arrow ? parsePopperOffset(data.offsets.arrow) : {\n top: 0,\n left: 0\n }\n };\n\n _this.props.onPopperUpdate(normalizedOffsets, data);\n });\n\n return _this;\n }\n\n _createClass(Tether, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n isMounted: true\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // Handles the case where popover content changes size and creates a gap between the anchor and\n // the popover. Popper.js only schedules updates on resize and scroll events. In the case of\n // the Select component, when options were filtered in the dropdown menu it creates a gap\n // between it and the input element.\n if (this.props.anchorRef) {\n var _this$props$anchorRef = this.props.anchorRef.getBoundingClientRect(),\n height = _this$props$anchorRef.height,\n width = _this$props$anchorRef.width;\n\n if (this.anchorHeight !== height || this.anchorWidth !== width) {\n this.anchorHeight = height;\n this.anchorWidth = width;\n this.popper && this.popper.scheduleUpdate();\n }\n }\n\n if (this.props.popperRef) {\n var _this$props$popperRef = this.props.popperRef.getBoundingClientRect(),\n _height = _this$props$popperRef.height,\n _width = _this$props$popperRef.width;\n\n if (this.popperHeight !== _height || this.popperWidth !== _width) {\n this.popperHeight = _height;\n this.popperWidth = _width;\n this.popper && this.popper.scheduleUpdate();\n }\n\n if (this.state.isMounted !== prevState.isMounted) {\n if (!this.props.anchorRef) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"[baseui][TetherBehavior] ref has not been passed to the Popper's anchor element.\\n See how to pass the ref to an anchor element in the Popover example\\n http://baseui.design/components/popover#anchor-ref-handling-example\");\n }\n } else {\n this.initializePopper();\n }\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyPopover();\n }\n }, {\n key: \"initializePopper\",\n value: function initializePopper() {\n var _this$props = this.props,\n placement = _this$props.placement,\n popperOptions = _this$props.popperOptions;\n\n var modifiers = popperOptions.modifiers,\n restOptions = _objectWithoutProperties(popperOptions, [\"modifiers\"]);\n\n if (!this.props.anchorRef || !this.props.popperRef) return;\n this.popper = new Popper(this.props.anchorRef, this.props.popperRef, _objectSpread({\n // Recommended placement (popper may ignore if it causes a viewport overflow, etc)\n placement: toPopperPlacement(placement),\n modifiers: _objectSpread({\n // Passing the arrow ref will measure the arrow when calculating styles\n arrow: {\n element: this.props.arrowRef,\n enabled: !!this.props.arrowRef\n },\n computeStyle: {\n // Make popper use top/left instead of transform translate, this is because\n // we use transform for animations and we dont want them to conflict\n gpuAcceleration: false\n },\n applyStyle: {\n // Disable default styling modifier, we'll apply styles on our own\n enabled: false\n },\n applyReactStyle: {\n enabled: true,\n fn: this.onPopperUpdate,\n order: 900\n },\n preventOverflow: {\n enabled: true\n }\n }, modifiers)\n }, restOptions));\n }\n }, {\n key: \"destroyPopover\",\n value: function destroyPopover() {\n if (this.popper) {\n this.popper.destroy();\n delete this.popper;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children || null;\n }\n }]);\n\n return Tether;\n}(React.Component);\n\n_defineProperty(Tether, \"defaultProps\", {\n anchorRef: null,\n onPopperUpdate: function onPopperUpdate() {\n return null;\n },\n placement: TETHER_PLACEMENT.auto,\n popperRef: null,\n popperOptions: {}\n});\n\nexport default Tether;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport var TETHER_PLACEMENT = {\n auto: 'auto',\n topLeft: 'topLeft',\n top: 'top',\n topRight: 'topRight',\n rightTop: 'rightTop',\n right: 'right',\n rightBottom: 'rightBottom',\n bottomRight: 'bottomRight',\n bottom: 'bottom',\n bottomLeft: 'bottomLeft',\n leftBottom: 'leftBottom',\n left: 'left',\n leftTop: 'leftTop'\n};","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/* eslint-disable import/prefer-default-export */\n\n\nimport { ARROW_SIZE, PLACEMENT } from './constants.js';\nvar OPPOSITE_POSITIONS = {\n top: 'bottom',\n bottom: 'top',\n right: 'left',\n left: 'right'\n};\n/**\n * Returns the opposite of the specified position. Useful for tooltip\n * positioning logic.\n * Examples:\n * top -> bottom\n * left -> right\n */\n\nexport function getOppositePosition(position) {\n return OPPOSITE_POSITIONS[position];\n}\n/**\n * Determines whether or not the specified position is a vertical one (top or bottom)\n */\n\nexport function isVerticalPosition(position) {\n return position === 'top' || position === 'bottom';\n}\n/**\n * Simple utility function for capitalizing the first letter of a string\n */\n\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n/**\n * Opposite of function above, converts from Popper.js placement\n * to our placement prop\n */\n\nexport function fromPopperPlacement(placement) {\n var popoverPlacement = placement.replace(/(top|bottom)-start$/, '$1Left').replace(/(top|bottom)-end$/, '$1Right').replace(/(left|right)-start$/, '$1Top').replace(/(left|right)-end$/, '$1Bottom');\n return PLACEMENT[popoverPlacement] || null;\n}\n/**\n * Splits something like 'topLeft' to ['top', 'left'] for easier usage\n */\n\nexport function splitPlacement(placement) {\n var matches = placement.match(/^([a-z]+)([A-Z][a-z]+)?/) || [];\n return matches.slice(1, 3).filter(Boolean).map(function (s) {\n return s.toLowerCase();\n });\n}\n/**\n * Returns margin styles to add spacing between the popover\n * and its anchor.\n */\n\nexport function getPopoverMarginStyles(arrowSize, placement, popoverMargin) {\n var _splitPlacement = splitPlacement(placement),\n _splitPlacement2 = _slicedToArray(_splitPlacement, 1),\n position = _splitPlacement2[0];\n\n var opposite = getOppositePosition(position);\n\n if (!opposite) {\n return null;\n }\n\n var property = \"margin\".concat(capitalize(opposite));\n return _defineProperty({}, property, \"\".concat(arrowSize + popoverMargin, \"px\"));\n}\n/**\n * Returns CSS rules for the popover animation start keyframe\n */\n\nexport function getStartPosition(offset, placement, arrowSize, popoverMargin) {\n offset = _objectSpread({}, offset);\n\n var _splitPlacement3 = splitPlacement(placement),\n _splitPlacement4 = _slicedToArray(_splitPlacement3, 1),\n position = _splitPlacement4[0];\n\n var margin = (arrowSize > 0 ? arrowSize : popoverMargin) * 2;\n\n if (isVerticalPosition(position)) {\n offset.top += position === 'top' ? margin : -margin;\n } else {\n offset.left += position === 'left' ? margin : -margin;\n }\n\n return \"translate3d(\".concat(offset.left, \"px, \").concat(offset.top, \"px, 0)\");\n}\n/**\n * Returns CSS rules for the popover animation end keyframe\n */\n\nexport function getEndPosition(offset) {\n return \"translate3d(\".concat(offset.left, \"px, \").concat(offset.top, \"px, 0)\");\n}\n/**\n * Returns top/left styles to position the popover arrow\n */\n\nexport function getArrowPositionStyles(offsets, placement) {\n var _ref2;\n\n var _splitPlacement5 = splitPlacement(placement),\n _splitPlacement6 = _slicedToArray(_splitPlacement5, 1),\n position = _splitPlacement6[0];\n\n var oppositePosition = getOppositePosition(position);\n\n if (!oppositePosition) {\n return null;\n }\n\n var alignmentProperty = isVerticalPosition(position) ? 'left' : 'top';\n return _ref2 = {}, _defineProperty(_ref2, alignmentProperty, \"\".concat(offsets[alignmentProperty], \"px\")), _defineProperty(_ref2, oppositePosition, \"-\".concat(ARROW_SIZE - 2, \"px\")), _ref2;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport { styled } from '../styles/index.js';\nimport { ARROW_SIZE, ARROW_WIDTH } from './constants.js';\nimport { getPopoverMarginStyles, getArrowPositionStyles, getStartPosition, getEndPosition } from './utils.js';\n/**\n * Main popover container element that gets positioned next to the anchor\n */\n\nexport function getBodyStyles(props) {\n var $isOpen = props.$isOpen,\n $isAnimating = props.$isAnimating,\n $placement = props.$placement,\n $popoverOffset = props.$popoverOffset,\n $showArrow = props.$showArrow,\n $theme = props.$theme,\n $popoverMargin = props.$popoverMargin,\n $isHoverTrigger = props.$isHoverTrigger;\n return _objectSpread(_objectSpread({\n position: 'absolute',\n top: 0,\n left: 0,\n backgroundColor: $theme.colors.backgroundTertiary,\n borderTopLeftRadius: $theme.borders.popoverBorderRadius,\n borderTopRightRadius: $theme.borders.popoverBorderRadius,\n borderBottomRightRadius: $theme.borders.popoverBorderRadius,\n borderBottomLeftRadius: $theme.borders.popoverBorderRadius,\n boxShadow: $theme.lighting.shadow600,\n transitionProperty: 'opacity,transform',\n transitionDuration: $isAnimating ? '0.1s' : '0s',\n transitionTimingFunction: $isOpen ? $theme.animation.easeOutCurve : $theme.animation.easeInCurve,\n opacity: $isAnimating && $isOpen ? 1 : 0,\n transform: $isAnimating && $isOpen ? getEndPosition($popoverOffset) : getStartPosition($popoverOffset, $placement, $showArrow ? ARROW_SIZE : 0, $popoverMargin)\n }, getPopoverMarginStyles($showArrow ? ARROW_SIZE : 0, $placement, $popoverMargin)), $isHoverTrigger ? {\n animationDuration: '.1s',\n animationName: {\n '0%': {\n pointerEvents: 'none'\n },\n '99%': {\n pointerEvents: 'none'\n },\n '100%': {\n pointerEvents: 'auto'\n }\n }\n } : {});\n}\nexport var Body = styled('div', getBodyStyles);\n/**\n * Arrow shown between the popover and the anchor element\n */\n\nBody.displayName = \"Body\";\nexport function getArrowStyles(props) {\n var $arrowOffset = props.$arrowOffset,\n $placement = props.$placement,\n $theme = props.$theme;\n return _objectSpread({\n backgroundColor: $theme.colors.backgroundTertiary,\n boxShadow: $theme.lighting.shadow600,\n width: \"\".concat(ARROW_WIDTH, \"px\"),\n height: \"\".concat(ARROW_WIDTH, \"px\"),\n transform: 'rotate(45deg)',\n position: 'absolute'\n }, getArrowPositionStyles($arrowOffset, $placement));\n}\nexport var Arrow = styled('div', getArrowStyles);\n/**\n * Extra div that holds the popover content. This extra element\n * is needed for the arrow–the arrow is just a 45deg rotated div,\n * and rendering this extra element on top with a solid background\n * clips the part of the arrow that extends into the popover.\n */\n\nArrow.displayName = \"Arrow\";\nexport function getInnerStyles(_ref) {\n var $theme = _ref.$theme;\n return {\n backgroundColor: $theme.colors.backgroundTertiary,\n borderTopLeftRadius: $theme.borders.popoverBorderRadius,\n borderTopRightRadius: $theme.borders.popoverBorderRadius,\n borderBottomRightRadius: $theme.borders.popoverBorderRadius,\n borderBottomLeftRadius: $theme.borders.popoverBorderRadius,\n color: $theme.colors.contentPrimary,\n position: 'relative'\n };\n}\nexport var Inner = styled('div', getInnerStyles);\n/**\n * A drop-in component that provides the recommended padding\n * for popovers. Mostly a convenience for users so they don't\n * have to define this themselves.\n */\n\nInner.displayName = \"Inner\";\nexport var Padding = styled('div', {\n paddingLeft: '12px',\n paddingTop: '12px',\n paddingRight: '12px',\n paddingBottom: '12px'\n});\nPadding.displayName = \"Padding\";\nexport var Hidden = styled('div', {\n display: 'none'\n});\nHidden.displayName = \"Hidden\";","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport { ACCESSIBILITY_TYPE, PLACEMENT, TRIGGER_TYPE } from './constants.js';\nvar baseDefaultProps = {\n accessibilityType: ACCESSIBILITY_TYPE.menu,\n focusLock: false,\n autoFocus: true,\n returnFocus: true,\n // Remove the `ignoreBoundary` prop in the next major version\n // and have it replaced with the TetherBehavior props overrides\n ignoreBoundary: false,\n overrides: {},\n onMouseEnterDelay: 200,\n onMouseLeaveDelay: 200,\n placement: PLACEMENT.auto,\n showArrow: false,\n triggerType: TRIGGER_TYPE.click,\n renderAll: false\n};\nexport default baseDefaultProps;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\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 _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/* eslint-disable react/no-find-dom-node */\n\n/* eslint-disable cup/no-undef */\n\n\nimport * as React from 'react';\nimport FocusLock, { MoveFocusInside } from 'react-focus-lock';\nimport { getOverride, getOverrideProps } from '../helpers/overrides.js';\nimport { ACCESSIBILITY_TYPE, PLACEMENT, TRIGGER_TYPE, ANIMATE_OUT_TIME, ANIMATE_IN_TIME, POPOVER_MARGIN } from './constants.js';\nimport { Layer, TetherBehavior } from '../layer/index.js';\nimport { Arrow as StyledArrow, Body as StyledBody, Inner as StyledInner, Hidden } from './styled-components.js';\nimport { fromPopperPlacement } from './utils.js';\nimport defaultProps from './default-props.js';\nimport { useUID } from 'react-uid';\n\nvar PopoverInner = /*#__PURE__*/function (_React$Component) {\n _inherits(PopoverInner, _React$Component);\n\n var _super = _createSuper(PopoverInner);\n\n function PopoverInner() {\n var _this;\n\n _classCallCheck(this, PopoverInner);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"animateInTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"animateOutTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"animateOutCompleteTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnterTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeaveTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"anchorRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"popperRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"arrowRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"state\", _this.getDefaultState(_this.props));\n\n _defineProperty(_assertThisInitialized(_this), \"animateIn\", function () {\n if (_this.props.isOpen) {\n _this.setState({\n isAnimating: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"animateOut\", function () {\n if (!_this.props.isOpen) {\n _this.setState({\n isAnimating: true\n }); // Remove the popover from the DOM after animation finishes\n\n\n _this.animateOutCompleteTimer = setTimeout(function () {\n _this.setState({\n isAnimating: false,\n // Reset to ideal placement specified in props\n placement: _this.props.placement\n });\n }, _this.props.animateOutTime || ANIMATE_OUT_TIME);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onAnchorClick\", function (e) {\n if (_this.props.onClick) {\n _this.props.onClick(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onAnchorMouseEnter\", function (e) {\n // First clear any existing close timers, this ensures that the user can\n // move their mouse from the popover back to anchor without it hiding\n if (_this.onMouseLeaveTimer) {\n clearTimeout(_this.onMouseLeaveTimer);\n }\n\n _this.triggerOnMouseEnterWithDelay(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onAnchorMouseLeave\", function (e) {\n // Clear any existing open timer, otherwise popover could be stuck open\n if (_this.onMouseEnterTimer) {\n clearTimeout(_this.onMouseEnterTimer);\n }\n\n _this.triggerOnMouseLeaveWithDelay(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopoverMouseEnter\", function () {\n if (_this.onMouseLeaveTimer) {\n clearTimeout(_this.onMouseLeaveTimer);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopoverMouseLeave\", function (e) {\n _this.triggerOnMouseLeaveWithDelay(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopperUpdate\", function (normalizedOffsets, data) {\n var placement = fromPopperPlacement(data.placement) || PLACEMENT.top;\n\n _this.setState({\n arrowOffset: normalizedOffsets.arrow,\n popoverOffset: normalizedOffsets.popper,\n placement: placement\n }); // Now that element has been positioned, we can animate it in\n\n\n _this.animateInTimer = setTimeout(_this.animateIn, ANIMATE_IN_TIME);\n return data;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"triggerOnMouseLeave\", function (e) {\n if (_this.props.onMouseLeave) {\n _this.props.onMouseLeave(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"triggerOnMouseEnter\", function (e) {\n if (_this.props.onMouseEnter) {\n _this.props.onMouseEnter(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (evt) {\n //$FlowFixMe\n var target = evt.composedPath ? evt.composedPath()[0] : evt.target;\n var popper = _this.popperRef.current;\n var anchor = _this.anchorRef.current; // Ignore document click if it came from popover or anchor\n\n if (!popper || popper === target || popper.contains(target)) {\n return;\n }\n\n if (!anchor || anchor === target || anchor.contains(target)) {\n return;\n }\n\n if (_this.props.onClickOutside) {\n _this.props.onClickOutside(evt);\n }\n });\n\n return _this;\n }\n\n _createClass(PopoverInner, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n isMounted: true\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n this.init(prevProps, prevState);\n\n if (this.props.autoFocus && !this.state.autoFocusAfterPositioning && this.popperRef.current !== null && this.popperRef.current.getBoundingClientRect().top > 0) {\n this.setState({\n autoFocusAfterPositioning: true\n });\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!this.anchorRef.current) {\n // eslint-disable-next-line no-console\n console.warn(\"[baseui][Popover] ref has not been passed to the Popper's anchor element.\\n See how to pass the ref to an anchor element in the Popover example\\n http://baseui.design/components/popover#anchor-ref-handling-example\");\n }\n }\n }\n }, {\n key: \"init\",\n value: function init(prevProps, prevState) {\n if (this.props.isOpen !== prevProps.isOpen || this.state.isMounted !== prevState.isMounted || this.state.isLayerMounted !== prevState.isLayerMounted) {\n // Transition from closed to open.\n if (this.props.isOpen && this.state.isLayerMounted) {\n // Clear any existing timers (like previous animateOutCompleteTimer)\n this.clearTimers();\n return;\n } // Transition from open to closed.\n\n\n if (!this.props.isOpen && prevProps.isOpen) {\n this.animateOutTimer = setTimeout(this.animateOut, 20);\n return;\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearTimers();\n }\n }, {\n key: \"getDefaultState\",\n value: function getDefaultState(props) {\n return {\n isAnimating: false,\n arrowOffset: {\n left: 0,\n top: 0\n },\n popoverOffset: {\n left: 0,\n top: 0\n },\n placement: props.placement,\n isMounted: false,\n isLayerMounted: false,\n autoFocusAfterPositioning: false\n };\n }\n }, {\n key: \"clearTimers\",\n value: function clearTimers() {\n [this.animateInTimer, this.animateOutTimer, this.animateOutCompleteTimer, this.onMouseEnterTimer, this.onMouseLeaveTimer].forEach(function (timerId) {\n if (timerId) {\n clearTimeout(timerId);\n }\n });\n }\n }, {\n key: \"triggerOnMouseLeaveWithDelay\",\n value: function triggerOnMouseLeaveWithDelay(e) {\n var _this2 = this;\n\n var onMouseLeaveDelay = this.props.onMouseLeaveDelay;\n\n if (onMouseLeaveDelay) {\n this.onMouseLeaveTimer = setTimeout(function () {\n return _this2.triggerOnMouseLeave(e);\n }, onMouseLeaveDelay);\n return;\n }\n\n this.triggerOnMouseLeave(e);\n }\n }, {\n key: \"triggerOnMouseEnterWithDelay\",\n value: function triggerOnMouseEnterWithDelay(e) {\n var _this3 = this;\n\n var onMouseEnterDelay = this.props.onMouseEnterDelay;\n\n if (onMouseEnterDelay) {\n this.onMouseEnterTimer = setTimeout(function () {\n return _this3.triggerOnMouseEnter(e);\n }, onMouseEnterDelay);\n return;\n }\n\n this.triggerOnMouseEnter(e);\n }\n }, {\n key: \"isClickTrigger\",\n value: function isClickTrigger() {\n return this.props.triggerType === TRIGGER_TYPE.click;\n }\n }, {\n key: \"isHoverTrigger\",\n value: function isHoverTrigger() {\n return this.props.triggerType === TRIGGER_TYPE.hover;\n }\n }, {\n key: \"isAccessibilityTypeMenu\",\n value: function isAccessibilityTypeMenu() {\n return this.props.accessibilityType === ACCESSIBILITY_TYPE.menu;\n }\n }, {\n key: \"isAccessibilityTypeTooltip\",\n value: function isAccessibilityTypeTooltip() {\n return this.props.accessibilityType === ACCESSIBILITY_TYPE.tooltip;\n }\n }, {\n key: \"getAnchorIdAttr\",\n value: function getAnchorIdAttr() {\n var popoverId = this.getPopoverIdAttr();\n return popoverId ? \"\".concat(popoverId, \"__anchor\") : null;\n }\n }, {\n key: \"getPopoverIdAttr\",\n value: function getPopoverIdAttr() {\n return this.props.id || null;\n }\n }, {\n key: \"getAnchorProps\",\n value: function getAnchorProps() {\n var isOpen = this.props.isOpen;\n var anchorProps = {\n 'aria-haspopup': 'true',\n 'aria-expanded': isOpen ? 'true' : 'false',\n key: 'popover-anchor',\n ref: this.anchorRef\n };\n var popoverId = this.getPopoverIdAttr();\n\n if (this.isAccessibilityTypeMenu()) {\n var relationAttr = this.isClickTrigger() ? 'aria-controls' : 'aria-owns';\n anchorProps[relationAttr] = isOpen ? popoverId : null;\n } else if (this.isAccessibilityTypeTooltip()) {\n anchorProps.id = this.getAnchorIdAttr();\n anchorProps['aria-describedby'] = isOpen ? popoverId : null;\n }\n\n if (this.isHoverTrigger()) {\n anchorProps.onMouseEnter = this.onAnchorMouseEnter;\n anchorProps.onMouseLeave = this.onAnchorMouseLeave; // Make it focusable too\n\n anchorProps.onBlur = this.props.onBlur;\n anchorProps.onFocus = this.props.onFocus;\n } else {\n anchorProps.onClick = this.onAnchorClick;\n }\n\n return anchorProps;\n }\n }, {\n key: \"getPopoverBodyProps\",\n value: function getPopoverBodyProps() {\n var bodyProps = {};\n var popoverId = this.getPopoverIdAttr();\n\n if (this.isAccessibilityTypeMenu()) {\n bodyProps.id = popoverId;\n } else if (this.isAccessibilityTypeTooltip()) {\n bodyProps.id = popoverId;\n bodyProps.role = 'tooltip';\n }\n\n if (this.isHoverTrigger()) {\n bodyProps.onMouseEnter = this.onPopoverMouseEnter;\n bodyProps.onMouseLeave = this.onPopoverMouseLeave;\n }\n\n return bodyProps;\n }\n }, {\n key: \"getSharedProps\",\n value: function getSharedProps() {\n var _this$props = this.props,\n isOpen = _this$props.isOpen,\n showArrow = _this$props.showArrow,\n _this$props$popoverMa = _this$props.popoverMargin,\n popoverMargin = _this$props$popoverMa === void 0 ? POPOVER_MARGIN : _this$props$popoverMa;\n var _this$state = this.state,\n isAnimating = _this$state.isAnimating,\n arrowOffset = _this$state.arrowOffset,\n popoverOffset = _this$state.popoverOffset,\n placement = _this$state.placement;\n return {\n $showArrow: !!showArrow,\n $arrowOffset: arrowOffset,\n $popoverOffset: popoverOffset,\n $placement: placement,\n $isAnimating: isAnimating,\n $isOpen: isOpen,\n $popoverMargin: popoverMargin,\n $isHoverTrigger: this.isHoverTrigger()\n };\n }\n }, {\n key: \"getAnchorFromChildren\",\n value: function getAnchorFromChildren() {\n var children = this.props.children;\n var childArray = React.Children.toArray(children);\n\n if (childArray.length !== 1) {\n // eslint-disable-next-line no-console\n console.error(\"[baseui] Exactly 1 child must be passed to Popover/Tooltip, found \".concat(childArray.length, \" children\"));\n }\n\n return childArray[0];\n }\n }, {\n key: \"renderAnchor\",\n value: function renderAnchor() {\n var anchor = this.getAnchorFromChildren();\n\n if (!anchor) {\n return null;\n }\n\n var isValidElement = /*#__PURE__*/React.isValidElement(anchor);\n var anchorProps = this.getAnchorProps();\n\n if (_typeof(anchor) === 'object' && isValidElement) {\n return /*#__PURE__*/React.cloneElement(anchor, anchorProps);\n }\n\n return /*#__PURE__*/React.createElement(\"span\", anchorProps, anchor);\n }\n }, {\n key: \"renderPopover\",\n value: function renderPopover(renderedContent) {\n var _this$props2 = this.props,\n showArrow = _this$props2.showArrow,\n _this$props2$override = _this$props2.overrides,\n overrides = _this$props2$override === void 0 ? {} : _this$props2$override;\n var ArrowOverride = overrides.Arrow,\n BodyOverride = overrides.Body,\n InnerOverride = overrides.Inner;\n var Arrow = getOverride(ArrowOverride) || StyledArrow;\n var Body = getOverride(BodyOverride) || StyledBody;\n var Inner = getOverride(InnerOverride) || StyledInner;\n var sharedProps = this.getSharedProps();\n var bodyProps = this.getPopoverBodyProps();\n return /*#__PURE__*/React.createElement(Body, _extends({\n key: \"popover-body\",\n ref: this.popperRef,\n \"data-baseweb\": this.props['data-baseweb'] || 'popover'\n }, bodyProps, sharedProps, getOverrideProps(BodyOverride)), showArrow ? /*#__PURE__*/React.createElement(Arrow, _extends({\n key: \"popover-arrow\",\n ref: this.arrowRef\n }, sharedProps, getOverrideProps(ArrowOverride))) : null, /*#__PURE__*/React.createElement(Inner, _extends({}, sharedProps, getOverrideProps(InnerOverride)), renderedContent));\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var content = this.props.content;\n return typeof content === 'function' ? content() : content;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var mountedAndOpen = this.state.isMounted && this.props.isOpen;\n var rendered = [this.renderAnchor()];\n var renderedContent = mountedAndOpen || this.props.renderAll ? this.renderContent() : null;\n var defaultPopperOptions = {\n modifiers: {\n preventOverflow: {\n enabled: !this.props.ignoreBoundary,\n padding: 0\n }\n }\n }; // Only render popover on the browser (portals aren't supported server-side)\n\n if (renderedContent) {\n if (mountedAndOpen) {\n rendered.push( /*#__PURE__*/React.createElement(Layer, {\n key: \"new-layer\",\n mountNode: this.props.mountNode,\n onEscape: this.props.onEsc,\n onDocumentClick: this.isHoverTrigger() ? undefined : this.onDocumentClick,\n isHoverLayer: this.isHoverTrigger(),\n onMount: function onMount() {\n return _this4.setState({\n isLayerMounted: true\n });\n },\n onUnmount: function onUnmount() {\n return _this4.setState({\n isLayerMounted: false\n });\n }\n }, /*#__PURE__*/React.createElement(TetherBehavior, {\n anchorRef: this.anchorRef.current,\n arrowRef: this.arrowRef.current,\n popperRef: this.popperRef.current // Remove the `ignoreBoundary` prop in the next major version\n // and have it replaced with the TetherBehavior props overrides\n ,\n popperOptions: _objectSpread(_objectSpread({}, defaultPopperOptions), this.props.popperOptions),\n onPopperUpdate: this.onPopperUpdate,\n placement: this.state.placement\n }, this.props.focusLock ? /*#__PURE__*/React.createElement(FocusLock, {\n disabled: !this.props.focusLock,\n noFocusGuards: false // see popover-focus-loop.scenario.js for why hover cannot return focus\n ,\n returnFocus: !this.isHoverTrigger() && this.props.returnFocus,\n autoFocus: this.state.autoFocusAfterPositioning,\n focusOptions: this.props.focusOptions\n }, this.renderPopover(renderedContent)) : /*#__PURE__*/React.createElement(MoveFocusInside, {\n disabled: !this.props.autoFocus && !this.state.autoFocusAfterPositioning\n }, this.renderPopover(renderedContent)))));\n } else {\n rendered.push( /*#__PURE__*/React.createElement(Hidden, {\n key: \"hidden-layer\"\n }, renderedContent));\n }\n }\n\n return rendered;\n }\n }]);\n\n return PopoverInner;\n}(React.Component); // Remove when Popover is converted to a functional component.\n\n\n_defineProperty(PopoverInner, \"defaultProps\", defaultProps);\n\nvar Popover = function Popover(props) {\n var innerRef = props.innerRef;\n return /*#__PURE__*/React.createElement(PopoverInner, _extends({\n id: props.id || useUID(),\n ref: innerRef\n }, props));\n};\n\nPopover.defaultProps = defaultProps;\nexport default Popover;\n/* eslint-enable react/no-find-dom-node */","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\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/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport * as React from 'react';\nimport { createStyled, withStyle as styletronWithStyle, useStyletron as styletronUseStyletron, withWrapper as styletronWithWrapper } from 'styletron-react';\nimport { driver, getInitialStyle } from 'styletron-standard';\nimport { ThemeContext } from './theme-provider.js';\n\nvar wrapper = function wrapper(StyledComponent) {\n return /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {\n return /*#__PURE__*/React.createElement(StyledComponent, _extends({\n ref: ref\n }, props, {\n $theme: theme\n }));\n });\n });\n};\n/* eslint-disable flowtype/generic-spacing */\n\n/* eslint-disable flowtype/no-weak-types */\n\n/* eslint-enable flowtype/generic-spacing */\n\n/* eslint-enable flowtype/no-weak-types */\n\n\nexport function createThemedStyled() {\n return createStyled({\n wrapper: wrapper,\n getInitialStyle: getInitialStyle,\n driver: driver // eslint-disable-next-line flowtype/no-weak-types\n\n });\n}\nexport var styled = createThemedStyled();\nexport function createThemedWithStyle() {\n // eslint-disable-next-line flowtype/no-weak-types\n return styletronWithStyle;\n}\nexport var withStyle = createThemedWithStyle();\nexport function createThemedUseStyletron() {\n return function () {\n // eslint-disable-next-line flowtype/no-weak-types\n var theme = React.useContext(ThemeContext);\n\n var _styletronUseStyletro = styletronUseStyletron(),\n _styletronUseStyletro2 = _slicedToArray(_styletronUseStyletro, 1),\n css = _styletronUseStyletro2[0];\n\n return [css, theme];\n };\n}\nexport var useStyletron = createThemedUseStyletron();\nexport function withWrapper( // eslint-disable-next-line flowtype/no-weak-types\nStyledElement, wrapperFn) {\n // eslint-disable-next-line flowtype/no-weak-types\n return styletronWithWrapper(StyledElement, function (Styled) {\n return /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {\n return wrapperFn(Styled)(_objectSpread(_objectSpread({\n ref: ref\n }, props), {}, {\n $theme: theme\n }));\n });\n });\n });\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport colorTokens from './color-tokens.js';\nimport getSemanticColorTokens from './color-semantic-tokens.js';\nimport getComponentColorTokens from './color-component-tokens.js';\nimport getDeprecatedSemanticColorTokens from './color-deprecated-semantic-tokens.js';\nimport borders from '../shared/borders.js';\nimport lighting from '../shared/lighting.js';\nimport getTypography from '../shared/typography.js';\nimport animation from '../shared/animation.js';\nimport breakpoints from '../shared/breakpoints.js';\nimport grid from '../shared/grid.js';\nimport mediaQuery from '../shared/media-query.js';\nimport sizing from '../shared/sizing.js';\nexport var LightTheme = {\n name: 'light-theme',\n colors: _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, colorTokens), getComponentColorTokens()), getDeprecatedSemanticColorTokens()), getSemanticColorTokens()),\n animation: animation,\n breakpoints: breakpoints,\n borders: borders,\n direction: 'auto',\n grid: grid,\n lighting: lighting,\n mediaQuery: mediaQuery,\n sizing: sizing,\n typography: getTypography(),\n // TODO(#2318) Remove it in the next v11 major version.\n // Do not use.\n zIndex: {\n modal: 2000\n }\n};","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport * as React from 'react';\nimport { LightTheme } from '../themes/index.js';\nexport var ThemeContext = /*#__PURE__*/React.createContext(LightTheme);\n\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = props.theme,\n children = props.children;\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, children);\n};\n\nexport default ThemeProvider;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport function hexToRgb() {\n var hex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '1';\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n hex = hex.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? \"rgba(\".concat(parseInt(result[1], 16), \", \").concat(parseInt(result[2], 16), \", \").concat(parseInt(result[3], 16), \", \").concat(alpha, \")\") : null;\n}\nexport var ellipsisText = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n};\nexport function expandBorderStyles(borderStyles) {\n return {\n borderTopWidth: borderStyles.borderWidth,\n borderTopStyle: borderStyles.borderStyle,\n borderTopColor: borderStyles.borderColor,\n borderBottomWidth: borderStyles.borderWidth,\n borderBottomStyle: borderStyles.borderStyle,\n borderBottomColor: borderStyles.borderColor,\n borderLeftWidth: borderStyles.borderWidth,\n borderLeftStyle: borderStyles.borderStyle,\n borderLeftColor: borderStyles.borderColor,\n borderRightWidth: borderStyles.borderWidth,\n borderRightStyle: borderStyles.borderStyle,\n borderRightColor: borderStyles.borderColor\n };\n}","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport colorTokens from './color-tokens.js';\nvar tagHoverBackground = \"rgba(0, 0, 0, 0.08)\";\n/* ---- Component colors ---- */\n// TODO(#2318) Make it a plain object in the next v11 major version\n// with values taken from `colorTokens`.\n// Due to the legacy `createTheme` type the value need to be\n// overrideable through primitives (`foundation` )\n\nexport default (function () {\n var themePrimitives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : colorTokens;\n return {\n // Buttons\n buttonPrimaryFill: themePrimitives.primary,\n buttonPrimaryText: themePrimitives.white,\n buttonPrimaryHover: themePrimitives.primary700,\n buttonPrimaryActive: themePrimitives.primary600,\n buttonPrimarySelectedFill: themePrimitives.primary600,\n buttonPrimarySelectedText: themePrimitives.white,\n buttonPrimarySpinnerForeground: themePrimitives.accent,\n buttonPrimarySpinnerBackground: themePrimitives.primaryB,\n buttonSecondaryFill: themePrimitives.primary100,\n buttonSecondaryText: themePrimitives.primary,\n buttonSecondaryHover: themePrimitives.primary200,\n buttonSecondaryActive: themePrimitives.primary300,\n buttonSecondarySelectedFill: themePrimitives.primary300,\n buttonSecondarySelectedText: themePrimitives.primary,\n buttonSecondarySpinnerForeground: themePrimitives.accent,\n buttonSecondarySpinnerBackground: themePrimitives.primaryB,\n buttonTertiaryFill: 'transparent',\n buttonTertiaryText: themePrimitives.primary,\n buttonTertiaryHover: themePrimitives.primary50,\n buttonTertiaryActive: themePrimitives.primary100,\n buttonTertiarySelectedFill: themePrimitives.primary100,\n buttonTertiarySelectedText: themePrimitives.primary,\n buttonTertiarySpinnerForeground: themePrimitives.accent,\n buttonTertiarySpinnerBackground: themePrimitives.primary100,\n buttonMinimalFill: 'transparent',\n buttonMinimalText: themePrimitives.primary,\n buttonMinimalHover: themePrimitives.primary50,\n buttonMinimalActive: themePrimitives.primary100,\n buttonMinimalSelectedFill: themePrimitives.primary100,\n buttonMinimalSelectedText: themePrimitives.primary,\n buttonMinimalSpinnerForeground: themePrimitives.accent,\n buttonMinimalSpinnerBackground: themePrimitives.primary100,\n buttonDisabledFill: themePrimitives.mono200,\n buttonDisabledText: themePrimitives.mono600,\n buttonDisabledSpinnerForeground: themePrimitives.mono600,\n buttonDisabledSpinnerBackground: themePrimitives.mono400,\n // Breadcrumbs\n breadcrumbsText: themePrimitives.mono900,\n breadcrumbsSeparatorFill: themePrimitives.mono700,\n // Datepicker\n datepickerBackground: themePrimitives.mono100,\n datepickerDayFont: themePrimitives.mono1000,\n datepickerDayFontDisabled: themePrimitives.mono500,\n datepickerDayPseudoSelected: themePrimitives.primary100,\n datepickerDayPseudoHighlighted: themePrimitives.primary200,\n // Calendar\n calendarBackground: themePrimitives.mono100,\n calendarForeground: themePrimitives.mono1000,\n calendarForegroundDisabled: themePrimitives.mono500,\n calendarHeaderBackground: themePrimitives.white,\n calendarHeaderForeground: themePrimitives.primary,\n calendarHeaderBackgroundActive: themePrimitives.primary700,\n calendarHeaderForegroundDisabled: themePrimitives.primary500,\n calendarDayBackgroundPseudoSelected: themePrimitives.primary100,\n calendarDayForegroundPseudoSelected: themePrimitives.mono1000,\n calendarDayBackgroundPseudoSelectedHighlighted: themePrimitives.primary200,\n calendarDayForegroundPseudoSelectedHighlighted: themePrimitives.mono1000,\n calendarDayBackgroundSelected: themePrimitives.primary,\n calendarDayForegroundSelected: themePrimitives.white,\n calendarDayBackgroundSelectedHighlighted: themePrimitives.primary,\n calendarDayForegroundSelectedHighlighted: themePrimitives.white,\n // Combobox\n comboboxListItemFocus: themePrimitives.mono200,\n comboboxListItemHover: themePrimitives.mono300,\n // FileUploader\n fileUploaderBackgroundColor: themePrimitives.mono200,\n fileUploaderBackgroundColorActive: themePrimitives.primary50,\n fileUploaderBorderColorActive: themePrimitives.primary,\n fileUploaderBorderColorDefault: themePrimitives.mono500,\n fileUploaderMessageColor: themePrimitives.mono800,\n // Links\n linkText: themePrimitives.primary,\n linkVisited: themePrimitives.primary700,\n linkHover: themePrimitives.primary600,\n linkActive: themePrimitives.primary500,\n // List\n listHeaderFill: themePrimitives.white,\n listBodyFill: themePrimitives.white,\n listIconFill: themePrimitives.mono500,\n listBorder: themePrimitives.mono500,\n // ProgressSteps\n progressStepsCompletedText: themePrimitives.white,\n progressStepsCompletedFill: themePrimitives.primary,\n progressStepsActiveText: themePrimitives.white,\n progressStepsActiveFill: themePrimitives.primary,\n progressStepsIconActiveFill: themePrimitives.primary,\n // Toggle\n toggleFill: themePrimitives.white,\n toggleFillChecked: themePrimitives.primary,\n toggleFillDisabled: themePrimitives.mono600,\n toggleTrackFill: themePrimitives.mono400,\n toggleTrackFillDisabled: themePrimitives.mono300,\n // Tick\n tickFill: themePrimitives.mono100,\n tickFillHover: themePrimitives.mono200,\n tickFillActive: themePrimitives.mono300,\n tickFillSelected: themePrimitives.primary,\n tickFillSelectedHover: themePrimitives.primary700,\n tickFillSelectedHoverActive: themePrimitives.primary600,\n tickFillError: themePrimitives.negative50,\n tickFillErrorHover: themePrimitives.negative100,\n tickFillErrorHoverActive: themePrimitives.negative200,\n tickFillErrorSelected: themePrimitives.negative400,\n tickFillErrorSelectedHover: themePrimitives.negative500,\n tickFillErrorSelectedHoverActive: themePrimitives.negative600,\n tickFillDisabled: themePrimitives.mono600,\n tickBorder: themePrimitives.mono700,\n tickBorderError: themePrimitives.negative400,\n tickMarkFill: themePrimitives.white,\n tickMarkFillError: themePrimitives.white,\n tickMarkFillDisabled: themePrimitives.mono100,\n // Slider/Toggle\n sliderTrackFill: 'transparent',\n sliderHandleFill: themePrimitives.primaryA,\n sliderHandleFillDisabled: themePrimitives.primary400,\n sliderHandleInnerFill: themePrimitives.primaryA,\n sliderTrackFillHover: themePrimitives.mono500,\n sliderTrackFillActive: themePrimitives.mono600,\n sliderTrackFillSelected: themePrimitives.primary,\n sliderTrackFillSelectedHover: themePrimitives.primary,\n sliderTrackFillSelectedActive: themePrimitives.primary500,\n sliderTrackFillDisabled: themePrimitives.mono300,\n sliderHandleFillHover: themePrimitives.white,\n sliderHandleFillActive: themePrimitives.white,\n sliderHandleFillSelected: themePrimitives.white,\n sliderHandleFillSelectedHover: themePrimitives.white,\n sliderHandleFillSelectedActive: themePrimitives.white,\n sliderHandleInnerFillDisabled: themePrimitives.mono400,\n sliderHandleInnerFillSelectedHover: themePrimitives.primary,\n sliderHandleInnerFillSelectedActive: themePrimitives.primary500,\n sliderBorder: themePrimitives.mono500,\n sliderBorderHover: themePrimitives.primary,\n sliderBorderDisabled: themePrimitives.mono600,\n // Inputs\n inputBorder: themePrimitives.mono300,\n inputFill: themePrimitives.mono300,\n inputFillError: themePrimitives.negative50,\n inputFillDisabled: themePrimitives.mono200,\n inputFillActive: themePrimitives.mono200,\n inputFillPositive: themePrimitives.positive50,\n inputTextDisabled: themePrimitives.mono600,\n inputBorderError: themePrimitives.negative200,\n inputBorderPositive: themePrimitives.positive200,\n inputEnhancerFill: themePrimitives.mono300,\n inputEnhancerFillDisabled: themePrimitives.mono300,\n inputEnhancerTextDisabled: themePrimitives.mono600,\n inputPlaceholder: themePrimitives.mono700,\n inputPlaceholderDisabled: themePrimitives.mono600,\n // Menu\n menuFill: themePrimitives.mono100,\n menuFillHover: themePrimitives.mono200,\n menuFontDefault: themePrimitives.mono800,\n menuFontDisabled: themePrimitives.mono500,\n menuFontHighlighted: themePrimitives.mono1000,\n menuFontSelected: themePrimitives.mono1000,\n // Modal\n modalCloseColor: themePrimitives.mono1000,\n modalCloseColorHover: themePrimitives.mono800,\n modalCloseColorFocus: themePrimitives.mono800,\n // Pagination\n paginationTriangleDown: themePrimitives.mono800,\n // Header navigation\n headerNavigationFill: 'transparent',\n // Tab\n tabBarFill: themePrimitives.mono200,\n tabColor: themePrimitives.mono800,\n // Notification\n notificationPrimaryBackground: themePrimitives.primary50,\n notificationPrimaryText: themePrimitives.primaryA,\n notificationInfoBackground: themePrimitives.accent50,\n notificationInfoText: themePrimitives.primaryA,\n notificationPositiveBackground: themePrimitives.positive50,\n notificationPositiveText: themePrimitives.primaryA,\n notificationWarningBackground: themePrimitives.warning50,\n notificationWarningText: themePrimitives.primaryA,\n notificationNegativeBackground: themePrimitives.negative50,\n notificationNegativeText: themePrimitives.primaryA,\n // Tag\n // Custom ramps\n tagFontDisabledRampUnit: '100',\n tagOutlinedDisabledRampUnit: '200',\n tagSolidFontRampUnit: '0',\n tagSolidRampUnit: '400',\n tagOutlinedFontRampUnit: '400',\n tagOutlinedRampUnit: '200',\n // Deprecated\n tagSolidHoverRampUnit: '50',\n tagSolidActiveRampUnit: '100',\n tagSolidDisabledRampUnit: '50',\n tagSolidFontHoverRampUnit: '500',\n tagLightRampUnit: '50',\n tagLightHoverRampUnit: '100',\n tagLightActiveRampUnit: '100',\n tagLightDisabledRampUnit: '50',\n tagLightFontRampUnit: '500',\n tagLightFontHoverRampUnit: '500',\n tagOutlinedHoverRampUnit: '50',\n tagOutlinedActiveRampUnit: '0',\n tagOutlinedFontHoverRampUnit: '400',\n // Neutral\n tagNeutralFontDisabled: themePrimitives.mono600,\n tagNeutralOutlinedDisabled: themePrimitives.mono400,\n tagNeutralSolidFont: themePrimitives.white,\n tagNeutralSolidBackground: themePrimitives.black,\n tagNeutralOutlinedBackground: themePrimitives.mono600,\n tagNeutralOutlinedFont: themePrimitives.black,\n // Deprecated\n tagNeutralSolidHover: themePrimitives.mono300,\n tagNeutralSolidActive: themePrimitives.mono400,\n tagNeutralSolidDisabled: themePrimitives.mono200,\n tagNeutralSolidFontHover: themePrimitives.mono900,\n tagNeutralLightBackground: themePrimitives.mono300,\n tagNeutralLightHover: themePrimitives.mono300,\n tagNeutralLightActive: themePrimitives.mono400,\n tagNeutralLightDisabled: themePrimitives.mono200,\n tagNeutralLightFont: themePrimitives.mono900,\n tagNeutralLightFontHover: themePrimitives.mono900,\n tagNeutralOutlinedActive: themePrimitives.mono900,\n tagNeutralOutlinedFontHover: themePrimitives.mono800,\n tagNeutralOutlinedHover: tagHoverBackground,\n // Primary\n tagPrimaryFontDisabled: themePrimitives.primary400,\n tagPrimaryOutlinedDisabled: themePrimitives.primary200,\n tagPrimarySolidFont: themePrimitives.white,\n tagPrimarySolidBackground: themePrimitives.primary,\n tagPrimaryOutlinedFontHover: themePrimitives.primary,\n tagPrimaryOutlinedFont: themePrimitives.primary,\n // Deprecated\n tagPrimarySolidHover: themePrimitives.primary100,\n tagPrimarySolidActive: themePrimitives.primary200,\n tagPrimarySolidDisabled: themePrimitives.primary50,\n tagPrimarySolidFontHover: themePrimitives.primary700,\n tagPrimaryLightBackground: themePrimitives.primary50,\n tagPrimaryLightHover: themePrimitives.primary100,\n tagPrimaryLightActive: themePrimitives.primary100,\n tagPrimaryLightDisabled: themePrimitives.primary50,\n tagPrimaryLightFont: themePrimitives.primary500,\n tagPrimaryLightFontHover: themePrimitives.primary500,\n tagPrimaryOutlinedActive: themePrimitives.primary600,\n tagPrimaryOutlinedHover: tagHoverBackground,\n tagPrimaryOutlinedBackground: themePrimitives.primary400,\n // Accent\n tagAccentFontDisabled: themePrimitives.accent200,\n tagAccentOutlinedDisabled: themePrimitives.accent200,\n tagAccentSolidFont: themePrimitives.white,\n tagAccentSolidBackground: themePrimitives.accent400,\n tagAccentOutlinedBackground: themePrimitives.accent200,\n tagAccentOutlinedFont: themePrimitives.accent400,\n // Deprecated\n tagAccentSolidHover: themePrimitives.accent50,\n tagAccentSolidActive: themePrimitives.accent100,\n tagAccentSolidDisabled: themePrimitives.accent50,\n tagAccentSolidFontHover: themePrimitives.accent500,\n tagAccentLightBackground: themePrimitives.accent50,\n tagAccentLightHover: themePrimitives.accent100,\n tagAccentLightActive: themePrimitives.accent100,\n tagAccentLightDisabled: themePrimitives.accent50,\n tagAccentLightFont: themePrimitives.accent500,\n tagAccentLightFontHover: themePrimitives.accent500,\n tagAccentOutlinedActive: themePrimitives.accent600,\n tagAccentOutlinedFontHover: themePrimitives.accent400,\n tagAccentOutlinedHover: tagHoverBackground,\n // Positive\n tagPositiveFontDisabled: themePrimitives.positive200,\n tagPositiveOutlinedDisabled: themePrimitives.positive200,\n tagPositiveSolidFont: themePrimitives.white,\n tagPositiveSolidBackground: themePrimitives.positive400,\n tagPositiveOutlinedBackground: themePrimitives.positive200,\n tagPositiveOutlinedFont: themePrimitives.positive400,\n // Deprecated\n tagPositiveSolidHover: themePrimitives.positive50,\n tagPositiveSolidActive: themePrimitives.positive100,\n tagPositiveSolidDisabled: themePrimitives.positive50,\n tagPositiveSolidFontHover: themePrimitives.positive500,\n tagPositiveLightBackground: themePrimitives.positive50,\n tagPositiveLightHover: themePrimitives.positive100,\n tagPositiveLightActive: themePrimitives.positive100,\n tagPositiveLightDisabled: themePrimitives.positive50,\n tagPositiveLightFont: themePrimitives.positive500,\n tagPositiveLightFontHover: themePrimitives.positive500,\n tagPositiveOutlinedActive: themePrimitives.positive600,\n tagPositiveOutlinedFontHover: themePrimitives.positive400,\n tagPositiveOutlinedHover: tagHoverBackground,\n // Warning\n tagWarningFontDisabled: themePrimitives.warning300,\n tagWarningOutlinedDisabled: themePrimitives.warning300,\n tagWarningSolidFont: themePrimitives.warning700,\n tagWarningSolidBackground: themePrimitives.warning400,\n tagWarningOutlinedBackground: themePrimitives.warning300,\n tagWarningOutlinedFont: themePrimitives.warning600,\n // Deprecated\n tagWarningSolidHover: themePrimitives.warning50,\n tagWarningSolidActive: themePrimitives.warning100,\n tagWarningSolidDisabled: themePrimitives.warning50,\n tagWarningSolidFontHover: themePrimitives.warning500,\n tagWarningLightBackground: themePrimitives.warning50,\n tagWarningLightHover: themePrimitives.warning100,\n tagWarningLightActive: themePrimitives.warning100,\n tagWarningLightDisabled: themePrimitives.warning50,\n tagWarningLightFont: themePrimitives.warning500,\n tagWarningLightFontHover: themePrimitives.warning500,\n tagWarningOutlinedActive: themePrimitives.warning600,\n tagWarningOutlinedFontHover: themePrimitives.warning600,\n tagWarningOutlinedHover: tagHoverBackground,\n // Negative\n tagNegativeFontDisabled: themePrimitives.negative200,\n tagNegativeOutlinedDisabled: themePrimitives.negative200,\n tagNegativeSolidFont: themePrimitives.white,\n tagNegativeSolidBackground: themePrimitives.negative400,\n tagNegativeOutlinedBackground: themePrimitives.negative200,\n tagNegativeOutlinedFont: themePrimitives.negative400,\n // Deprecated\n tagNegativeSolidHover: themePrimitives.negative50,\n tagNegativeSolidActive: themePrimitives.negative100,\n tagNegativeSolidDisabled: themePrimitives.negative50,\n tagNegativeSolidFontHover: themePrimitives.negative500,\n tagNegativeLightBackground: themePrimitives.negative50,\n tagNegativeLightHover: themePrimitives.negative100,\n tagNegativeLightActive: themePrimitives.negative100,\n tagNegativeLightDisabled: themePrimitives.negative50,\n tagNegativeLightFont: themePrimitives.negative500,\n tagNegativeLightFontHover: themePrimitives.negative500,\n tagNegativeOutlinedActive: themePrimitives.negative600,\n tagNegativeOutlinedFontHover: themePrimitives.negative400,\n tagNegativeOutlinedHover: tagHoverBackground,\n // Table\n tableHeadBackgroundColor: themePrimitives.mono100,\n tableBackground: themePrimitives.mono100,\n tableStripedBackground: themePrimitives.mono200,\n tableFilter: themePrimitives.mono600,\n tableFilterHeading: themePrimitives.mono700,\n tableFilterBackground: themePrimitives.mono100,\n tableFilterFooterBackground: themePrimitives.mono200,\n // Toast\n toastText: themePrimitives.white,\n toastPrimaryBackground: themePrimitives.primary400,\n toastPrimaryText: themePrimitives.white,\n toastInfoBackground: themePrimitives.accent400,\n toastInfoText: themePrimitives.white,\n toastPositiveBackground: themePrimitives.positive400,\n toastPositiveText: themePrimitives.white,\n toastWarningBackground: themePrimitives.warning400,\n toastWarningText: themePrimitives.black,\n toastNegativeBackground: themePrimitives.negative400,\n toastNegativeText: themePrimitives.white,\n // Spinner\n spinnerTrackFill: themePrimitives.mono900,\n // Progress bar\n progressbarTrackFill: themePrimitives.mono900,\n // Tooltip\n tooltipBackground: themePrimitives.mono900,\n tooltipText: themePrimitives.mono100\n };\n});","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport colorTokens from './color-tokens.js';\n/* ---- DEPRECATED ---- */\n\nexport default (function () {\n var themePrimitives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : colorTokens;\n return {\n // TODO(#2318) Remove Legacy Semantic Colors values in the next v11 major\n // since it's not used in the component specific tokens\n // and we ship semantic tokens separately\n\n /* ---- Legacy Semantic Colors ---- */\n // Font Color\n colorPrimary: themePrimitives.black,\n colorSecondary: themePrimitives.mono800,\n // Background\n background: themePrimitives.white,\n backgroundAlt: themePrimitives.white,\n backgroundInv: themePrimitives.primary,\n // Foreground\n foreground: themePrimitives.black,\n foregroundAlt: themePrimitives.mono800,\n foregroundInv: themePrimitives.white,\n // Borders\n border: themePrimitives.mono500,\n borderAlt: themePrimitives.mono600,\n borderFocus: themePrimitives.primary,\n borderError: themePrimitives.negative,\n // Shadow\n shadowFocus: 'rgba(39, 110, 241, 0.32)',\n shadowError: 'rgba(229, 73, 55, 0.32)'\n };\n});","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport colorTokens from './color-tokens.js';\nimport { hexToRgb as hexToRgba } from '../../styles/util.js';\nimport colors from '../../tokens/colors.js';\nexport default (function () {\n var foundation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : colorTokens;\n var core = {\n // Background\n backgroundPrimary: foundation.primaryB,\n backgroundSecondary: colors.gray50,\n backgroundTertiary: colors.gray100,\n backgroundInversePrimary: foundation.primaryA,\n backgroundInverseSecondary: colors.gray800,\n // Content\n contentPrimary: foundation.primaryA,\n contentSecondary: colors.gray600,\n contentTertiary: colors.gray500,\n contentInversePrimary: foundation.primaryB,\n contentInverseSecondary: colors.gray300,\n contentInverseTertiary: colors.gray400,\n // Border\n borderOpaque: colors.gray200,\n borderTransparent: hexToRgba(foundation.primaryA, '0.08'),\n borderSelected: foundation.primaryA,\n borderInverseOpaque: colors.gray700,\n borderInverseTransparent: hexToRgba(foundation.primaryB, '0.2'),\n borderInverseSelected: foundation.primaryB\n };\n var coreExtensions = {\n // Backgrounds\n backgroundStateDisabled: colors.gray50,\n backgroundOverlayDark: hexToRgba(colors.black, '0.3'),\n backgroundOverlayLight: hexToRgba(colors.black, '0.08'),\n backgroundAccent: foundation.accent,\n backgroundNegative: foundation.negative,\n backgroundWarning: foundation.warning,\n backgroundPositive: colors.green400,\n backgroundLightAccent: colors.blue50,\n backgroundLightNegative: colors.red50,\n backgroundLightWarning: colors.yellow50,\n backgroundLightPositive: colors.green50,\n backgroundAlwaysDark: colors.black,\n backgroundAlwaysLight: colors.white,\n // Content\n contentStateDisabled: colors.gray400,\n contentAccent: foundation.accent,\n contentOnColor: colors.white,\n contentOnColorInverse: colors.black,\n contentNegative: foundation.negative,\n contentWarning: colors.yellow600,\n contentPositive: colors.green400,\n // Border\n borderStateDisabled: colors.gray50,\n borderAccent: colors.blue400,\n borderAccentLight: colors.blue200,\n borderNegative: colors.red200,\n borderWarning: colors.yellow200,\n borderPositive: colors.green200,\n // Programs\n safety: colors.blue400,\n eatsGreen400: colors.green400,\n freightBlue400: colors.cobalt400,\n jumpRed400: colors.red400,\n rewardsTier1: colors.blue400,\n rewardsTier2: colors.yellow400,\n rewardsTier3: colors.platinum400,\n rewardsTier4: colors.black,\n membership: colors.yellow600\n };\n return _objectSpread(_objectSpread({}, core), coreExtensions);\n});","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport { colors } from '../../tokens/index.js'; // color constants\n\nvar lightColorTokens = {\n // Primary Palette\n primaryA: colors.black,\n primaryB: colors.white,\n primary: colors.black,\n primary50: colors.gray50,\n primary100: colors.gray100,\n primary200: colors.gray200,\n primary300: colors.gray300,\n primary400: colors.gray400,\n primary500: colors.gray500,\n primary600: colors.gray600,\n primary700: colors.gray700,\n // Accent Palette\n accent: colors.blue400,\n accent50: colors.blue50,\n accent100: colors.blue100,\n accent200: colors.blue200,\n accent300: colors.blue300,\n accent400: colors.blue400,\n accent500: colors.blue500,\n accent600: colors.blue600,\n accent700: colors.blue700,\n // Negative Palette\n negative: colors.red400,\n negative50: colors.red50,\n negative100: colors.red100,\n negative200: colors.red200,\n negative300: colors.red300,\n negative400: colors.red400,\n negative500: colors.red500,\n negative600: colors.red600,\n negative700: colors.red700,\n // Warning Palette\n warning: colors.yellow400,\n warning50: colors.yellow50,\n warning100: colors.yellow100,\n warning200: colors.yellow200,\n warning300: colors.yellow300,\n warning400: colors.yellow400,\n warning500: colors.yellow500,\n warning600: colors.yellow600,\n warning700: colors.yellow700,\n // Positive Palette\n positive: colors.green500,\n positive50: colors.green50,\n positive100: colors.green100,\n positive200: colors.green200,\n positive300: colors.green300,\n positive400: colors.green400,\n positive500: colors.green500,\n positive600: colors.green600,\n positive700: colors.green700,\n // Monochrome Palette\n white: colors.white,\n black: colors.black,\n mono100: colors.white,\n mono200: colors.gray50,\n mono300: colors.gray100,\n mono400: colors.gray200,\n mono500: colors.gray300,\n mono600: colors.gray400,\n mono700: colors.gray500,\n mono800: colors.gray600,\n mono900: colors.gray700,\n mono1000: colors.black,\n // Rating Palette,\n rating200: colors.yellow200,\n rating400: colors.yellow400,\n ratingInactiveFill: colors.gray100,\n ratingStroke: colors.gray300\n};\nexport default lightColorTokens;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport animation from '../shared/animation.js';\nimport borders from '../shared/borders.js';\nimport breakpoints from '../shared/breakpoints.js';\nimport deepMerge from '../../utils/deep-merge.js';\nimport defaultColorTokens from './color-tokens.js';\nimport getComponentColorTokens from './color-component-tokens.js';\nimport getDeprecatedSemanticColorTokens from './color-deprecated-semantic-tokens.js';\nimport getSemanticColorTokens from './color-semantic-tokens.js';\nimport getTypography from '../shared/typography.js';\nimport grid from '../shared/grid.js';\nimport lighting from '../shared/lighting.js';\nimport mediaQuery from '../shared/media-query.js';\nimport sizing from '../shared/sizing.js';\nexport default function createLightTheme() {\n var primitives = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var // Used to override default theme property values derived from primitives\n overrides = arguments.length > 1 ? arguments[1] : undefined; // Extract font tokens and color tokens from primitives\n\n var primaryFontFamily = primitives.primaryFontFamily,\n customColorTokens = _objectWithoutProperties(primitives, [\"primaryFontFamily\"]); // Assemble color tokens by overriding defaults with custom color tokens\n\n\n var colorTokens = _objectSpread(_objectSpread({}, defaultColorTokens), customColorTokens);\n\n var theme = {\n animation: animation,\n borders: borders,\n breakpoints: breakpoints,\n colors: _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, colorTokens), getComponentColorTokens(colorTokens)), getDeprecatedSemanticColorTokens(colorTokens)), getSemanticColorTokens(colorTokens)),\n direction: 'auto',\n grid: grid,\n lighting: lighting,\n mediaQuery: mediaQuery,\n sizing: sizing,\n // If primaryFontFamily is not provided, we use our default font tokens\n typography: primaryFontFamily ? getTypography({\n primaryFontFamily: primaryFontFamily\n }) : getTypography(),\n // TODO(#2318) Remove in v11, the next major version.\n // Do not use.\n zIndex: {\n modal: 2000\n }\n };\n return deepMerge(theme, overrides);\n}","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar animation = {\n timing100: '100ms',\n timing200: '200ms',\n timing300: '300ms',\n timing400: '400ms',\n timing500: '500ms',\n timing600: '600ms',\n timing700: '700ms',\n timing800: '800ms',\n timing900: '900ms',\n timing1000: '1000ms',\n easeInCurve: 'cubic-bezier(.8, .2, .6, 1)',\n easeOutCurve: 'cubic-bezier(.2, .8, .4, 1)',\n easeInOutCurve: 'cubic-bezier(0.4, 0, 0.2, 1)',\n easeInQuinticCurve: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n easeOutQuinticCurve: 'cubic-bezier(0.23, 1, 0.32, 1)',\n easeInOutQuinticCurve: 'cubic-bezier(0.86, 0, 0.07, 1)',\n linearCurve: 'cubic-bezier(0, 0, 1, 1)'\n};\nexport default animation;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n// borderColor is defaulted to the light theme values.\n// Dark theme overrides the border colors.\nvar borders = {\n border100: {\n borderColor: 'hsla(0, 0%, 0%, 0.04)',\n borderStyle: 'solid',\n borderWidth: '1px'\n },\n border200: {\n borderColor: 'hsla(0, 0%, 0%, 0.08)',\n borderStyle: 'solid',\n borderWidth: '1px'\n },\n border300: {\n borderColor: 'hsla(0, 0%, 0%, 0.12)',\n borderStyle: 'solid',\n borderWidth: '1px'\n },\n border400: {\n borderColor: 'hsla(0, 0%, 0%, 0.16)',\n borderStyle: 'solid',\n borderWidth: '1px'\n },\n border500: {\n borderColor: 'hsla(0, 0%, 0%, 0.2)',\n borderStyle: 'solid',\n borderWidth: '1px'\n },\n border600: {\n borderColor: 'hsla(0, 0%, 0%, 0.24)',\n borderStyle: 'solid',\n borderWidth: '1px'\n },\n radius100: '2px',\n radius200: '4px',\n radius300: '8px',\n radius400: '12px',\n radius500: '16px',\n\n /** Datepicker (Range), Progress Bar, Slider, Tag */\n useRoundedCorners: true,\n\n /** Button, ButtonGroup */\n buttonBorderRadius: '0px',\n\n /** Input, Select, Textarea, Checkbox */\n inputBorderRadius: '0px',\n\n /** Popover, Menu, Tooltip */\n popoverBorderRadius: '0px',\n\n /** Card, Datepicker, Modal, Toast, Notification */\n surfaceBorderRadius: '0px',\n\n /** Tag */\n tagBorderRadius: '24px'\n};\nexport default borders;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar breakpoints = {\n small: 320,\n medium: 600,\n large: 1136\n};\nexport default breakpoints;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar grid = {\n columns: [4, 8, 12],\n gutters: [16, 36, 36],\n margins: [16, 36, 64],\n gaps: 0,\n unit: 'px',\n maxWidth: 1280\n};\nexport default grid;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar lighting = {\n shadow400: '0 1px 4px hsla(0, 0%, 0%, 0.16)',\n shadow500: '0 2px 8px hsla(0, 0%, 0%, 0.16)',\n shadow600: '0 4px 16px hsla(0, 0%, 0%, 0.16)',\n shadow700: '0 8px 24px hsla(0, 0%, 0%, 0.16)',\n overlay0: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0)',\n overlay100: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.04)',\n overlay200: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.08)',\n overlay300: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.12)',\n overlay400: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.16)',\n overlay500: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.2)',\n overlay600: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.24)',\n shallowAbove: '0px -4px 16px rgba(0, 0, 0, 0.12)',\n shallowBelow: '0px 4px 16px rgba(0, 0, 0, 0.12)',\n deepAbove: '0px -16px 48px rgba(0, 0, 0, 0.22)',\n deepBelow: '0px 16px 48px rgba(0, 0, 0, 0.22)'\n};\nexport default lighting;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport { getMediaQuery } from '../../helpers/responsive-helpers.js';\nimport breakpoints from './breakpoints.js';\nvar mediaQuery = {\n small: getMediaQuery(breakpoints.small),\n medium: getMediaQuery(breakpoints.medium),\n large: getMediaQuery(breakpoints.large)\n};\nexport default mediaQuery;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar sizing = {\n scale0: '2px',\n scale100: '4px',\n scale200: '6px',\n scale300: '8px',\n scale400: '10px',\n scale500: '12px',\n scale550: '14px',\n scale600: '16px',\n scale650: '18px',\n scale700: '20px',\n scale750: '22px',\n scale800: '24px',\n scale850: '28px',\n scale900: '32px',\n scale950: '36px',\n scale1000: '40px',\n scale1200: '48px',\n scale1400: '56px',\n scale1600: '64px',\n scale2400: '96px',\n scale3200: '128px',\n scale4800: '192px'\n};\nexport default sizing;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nexport var defaultFontTokens = {\n primaryFontFamily: 'system-ui, \"Helvetica Neue\", Helvetica, Arial, sans-serif'\n};\nvar monoFontFamily = '\"Lucida Console\", Monaco, monospace';\nexport default (function () {\n var fontTokens = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFontTokens;\n var font100 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '12px',\n fontWeight: 'normal',\n lineHeight: '20px'\n };\n var font150 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '12px',\n fontWeight: 500,\n lineHeight: '16px'\n };\n var font200 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: '20px'\n };\n var font250 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px'\n };\n var font300 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '16px',\n fontWeight: 'normal',\n lineHeight: '24px'\n };\n var font350 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '16px',\n fontWeight: 500,\n lineHeight: '20px'\n };\n var font400 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '18px',\n fontWeight: 'normal',\n lineHeight: '28px'\n };\n var font450 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '18px',\n fontWeight: 500,\n lineHeight: '24px'\n };\n var font550 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '20px',\n fontWeight: 500,\n lineHeight: '28px'\n };\n var font650 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '24px',\n fontWeight: 500,\n lineHeight: '32px'\n };\n var font750 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '28px',\n fontWeight: 500,\n lineHeight: '36px'\n };\n var font850 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '32px',\n fontWeight: 500,\n lineHeight: '40px'\n };\n var font950 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '36px',\n fontWeight: 500,\n lineHeight: '44px'\n };\n var font1050 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '40px',\n fontWeight: 500,\n lineHeight: '52px'\n };\n var font1150 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '36px',\n fontWeight: 500,\n lineHeight: '44px'\n };\n var font1250 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '44px',\n fontWeight: 500,\n lineHeight: '52px'\n };\n var font1350 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '52px',\n fontWeight: 500,\n lineHeight: '64px'\n };\n var font1450 = {\n fontFamily: fontTokens.primaryFontFamily,\n fontSize: '96px',\n fontWeight: 500,\n lineHeight: '112px'\n };\n return {\n font100: font100,\n font150: font150,\n font200: font200,\n font250: font250,\n font300: font300,\n font350: font350,\n font400: font400,\n font450: font450,\n font550: font550,\n font650: font650,\n font750: font750,\n font850: font850,\n font950: font950,\n font1050: font1050,\n font1150: font1150,\n font1250: font1250,\n font1350: font1350,\n font1450: font1450,\n ParagraphXSmall: font100,\n ParagraphSmall: font200,\n ParagraphMedium: font300,\n ParagraphLarge: font400,\n LabelXSmall: font150,\n LabelSmall: font250,\n LabelMedium: font350,\n LabelLarge: font450,\n HeadingXSmall: font550,\n HeadingSmall: font650,\n HeadingMedium: font750,\n HeadingLarge: font850,\n HeadingXLarge: font950,\n HeadingXXLarge: font1050,\n DisplayXSmall: font1150,\n DisplaySmall: font1250,\n DisplayMedium: font1350,\n DisplayLarge: font1450,\n MonoParagraphXSmall: _objectSpread(_objectSpread({}, font100), {}, {\n fontFamily: monoFontFamily\n }),\n MonoParagraphSmall: _objectSpread(_objectSpread({}, font200), {}, {\n fontFamily: monoFontFamily\n }),\n MonoParagraphMedium: _objectSpread(_objectSpread({}, font300), {}, {\n fontFamily: monoFontFamily\n }),\n MonoParagraphLarge: _objectSpread(_objectSpread({}, font400), {}, {\n fontFamily: monoFontFamily\n }),\n MonoLabelXSmall: _objectSpread(_objectSpread({}, font150), {}, {\n fontFamily: monoFontFamily\n }),\n MonoLabelSmall: _objectSpread(_objectSpread({}, font250), {}, {\n fontFamily: monoFontFamily\n }),\n MonoLabelMedium: _objectSpread(_objectSpread({}, font350), {}, {\n fontFamily: monoFontFamily\n }),\n MonoLabelLarge: _objectSpread(_objectSpread({}, font450), {}, {\n fontFamily: monoFontFamily\n }),\n MonoHeadingXSmall: _objectSpread(_objectSpread({}, font550), {}, {\n fontFamily: monoFontFamily\n }),\n MonoHeadingSmall: _objectSpread(_objectSpread({}, font650), {}, {\n fontFamily: monoFontFamily\n }),\n MonoHeadingMedium: _objectSpread(_objectSpread({}, font750), {}, {\n fontFamily: monoFontFamily\n }),\n MonoHeadingLarge: _objectSpread(_objectSpread({}, font850), {}, {\n fontFamily: monoFontFamily\n }),\n MonoHeadingXLarge: _objectSpread(_objectSpread({}, font950), {}, {\n fontFamily: monoFontFamily\n }),\n MonoHeadingXXLarge: _objectSpread(_objectSpread({}, font1050), {}, {\n fontFamily: monoFontFamily\n }),\n MonoDisplayXSmall: _objectSpread(_objectSpread({}, font1150), {}, {\n fontFamily: monoFontFamily\n }),\n MonoDisplaySmall: _objectSpread(_objectSpread({}, font1250), {}, {\n fontFamily: monoFontFamily\n }),\n MonoDisplayMedium: _objectSpread(_objectSpread({}, font1350), {}, {\n fontFamily: monoFontFamily\n }),\n MonoDisplayLarge: _objectSpread(_objectSpread({}, font1450), {}, {\n fontFamily: monoFontFamily\n })\n };\n});","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nvar colors = {\n white: '#FFFFFF',\n gray50: '#F6F6F6',\n gray100: '#EEEEEE',\n gray200: '#E2E2E2',\n gray300: '#CBCBCB',\n gray400: '#AFAFAF',\n gray500: '#6B6B6B',\n gray600: '#545454',\n gray700: '#333333',\n gray800: '#1F1F1F',\n gray900: '#141414',\n black: '#000000',\n platinum50: '#F4FAFB',\n platinum100: '#EBF5F7',\n platinum200: '#CCDFE5',\n platinum300: '#A1BDCA',\n platinum400: '#8EA3AD',\n platinum500: '#6C7C83',\n platinum600: '#556268',\n platinum700: '#394145',\n platinum800: '#142328',\n red50: '#FFEFED',\n red100: '#FED7D2',\n red200: '#F1998E',\n red300: '#E85C4A',\n red400: '#E11900',\n red500: '#AB1300',\n red600: '#870F00',\n red700: '#5A0A00',\n orange50: '#FFF3EF',\n orange100: '#FFE1D6',\n orange200: '#FABDA5',\n orange300: '#FA9269',\n orange400: '#FF6937',\n orange500: '#C14F29',\n orange600: '#9A3F21',\n orange700: '#672A16',\n yellow50: '#FFFAF0',\n yellow100: '#FFF2D9',\n yellow200: '#FFE3AC',\n yellow300: '#FFCF70',\n yellow400: '#FFC043',\n yellow500: '#BC8B2C',\n yellow600: '#996F00',\n yellow700: '#674D1B',\n green50: '#E6F2ED',\n green100: '#ADDEC9',\n green200: '#66D19E',\n green300: '#06C167',\n green400: '#048848',\n green500: '#03703C',\n green600: '#03582F',\n green700: '#10462D',\n blue50: '#EFF3FE',\n blue100: '#D4E2FC',\n blue200: '#A0BFF8',\n blue300: '#5B91F5',\n blue400: '#276EF1',\n blue500: '#1E54B7',\n blue600: '#174291',\n blue700: '#102C60',\n cobalt50: '#EBEDFA',\n cobalt100: '#D2D7F0',\n cobalt200: '#949CE3',\n cobalt300: '#535FCF',\n cobalt400: '#0E1FC1',\n cobalt500: '#0A1899',\n cobalt600: '#081270',\n cobalt700: '#050C4D',\n purple50: '#F3F1F9',\n purple100: '#E3DDF2',\n purple200: '#C1B4E2',\n purple300: '#957FCE',\n purple400: '#7356BF',\n purple500: '#574191',\n purple600: '#453473',\n purple700: '#2E224C',\n brown50: '#F6F0EA',\n brown100: '#EBE0DB',\n brown200: '#D2BBB0',\n brown300: '#B18977',\n brown400: '#99644C',\n brown500: '#744C3A',\n brown600: '#5C3C2E',\n brown700: '#3D281E'\n};\nexport default colors;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/* eslint-disable flowtype/no-weak-types */\n\n\nexport default function deepMerge(target) {\n target = target || {};\n var len = arguments.length <= 1 ? 0 : arguments.length - 1;\n var obj;\n var value;\n\n for (var i = 0; i < len; i++) {\n obj = (i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1]) || {};\n\n for (var key in obj) {\n if (_typeof(obj[key]) !== undefined) {\n value = obj[key];\n\n if (isCloneable(value)) {\n target[key] = deepMerge(\n /* eslint-disable-next-line no-mixed-operators */\n target[key] || Array.isArray(value) && [] || {}, value);\n } else {\n target[key] = value;\n }\n }\n }\n }\n\n return target;\n}\n/* eslint-enable flowtype/no-weak-types */\n\n/* eslint-disable-next-line flowtype/no-weak-types */\n\nfunction isCloneable(obj) {\n /* eslint-disable-next-line eqeqeq */\n return Array.isArray(obj) || {}.toString.call(obj) == '[object Object]';\n}","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n// based on:\n// - https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/utils/focusVisible.js\n// - https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nvar initialized = false;\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n} //$FlowFixMe\n\n\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n} //$FlowFixMe\n\nexport function isFocusVisible(event) {\n try {\n return event.target.matches(':focus-visible');\n } catch (error) {// browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n } // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(event.target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\nexport function handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n\n if (typeof document !== 'undefined') {\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n }\n} //$FlowFixMe\n\nexport function initFocusVisible(node) {\n if (!initialized && node != null) {\n initialized = true;\n prepare(node.ownerDocument);\n }\n}\nexport var forkFocus = function forkFocus(rootProps, handler) {\n return function (e) {\n if (typeof rootProps.onFocus === 'function') {\n rootProps.onFocus(e);\n }\n\n handler(e);\n };\n};\nexport var forkBlur = function forkBlur(rootProps, handler) {\n return function (e) {\n if (typeof rootProps.onBlur === 'function') {\n rootProps.onBlur(e);\n }\n\n handler(e);\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hyphenateProperty;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\n\nmodule.exports = exports['default'];","export var FOCUS_GROUP = 'data-focus-lock';\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\nexport var FOCUS_AUTO = 'data-autofocus-inside';","\"use strict\";\n\nmodule.exports = Object.assign;","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name];\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\n\nexport default hyphenateStyleName;","module.exports = extend;\n/*\n var obj = {a: 3, b: 5};\n extend(obj, {a: 4, c: 8}); // {a: 4, b: 5, c: 8}\n obj; // {a: 4, b: 5, c: 8}\n\n var obj = {a: 3, b: 5};\n extend({}, obj, {a: 4, c: 8}); // {a: 4, b: 5, c: 8}\n obj; // {a: 3, b: 5}\n\n var arr = [1, 2, 3];\n var obj = {a: 3, b: 5};\n extend(obj, {c: arr}); // {a: 3, b: 5, c: [1, 2, 3]}\n arr.push(4);\n obj; // {a: 3, b: 5, c: [1, 2, 3, 4]}\n\n var arr = [1, 2, 3];\n var obj = {a: 3, b: 5};\n extend(true, obj, {c: arr}); // {a: 3, b: 5, c: [1, 2, 3]}\n arr.push(4);\n obj; // {a: 3, b: 5, c: [1, 2, 3]}\n\n extend({a: 4, b: 5}); // {a: 4, b: 5}\n extend({a: 4, b: 5}, 3); {a: 4, b: 5}\n extend({a: 4, b: 5}, true); {a: 4, b: 5}\n extend('hello', {a: 4, b: 5}); // throws\n extend(3, {a: 4, b: 5}); // throws\n*/\n\nfunction\n /* [deep], obj1, obj2, [objn] */\nextend() {\n var args = [].slice.call(arguments);\n var deep = false;\n\n if (typeof args[0] == 'boolean') {\n deep = args.shift();\n }\n\n var result = args[0];\n\n if (isUnextendable(result)) {\n throw new Error('extendee must be an object');\n }\n\n var extenders = args.slice(1);\n var len = extenders.length;\n\n for (var i = 0; i < len; i++) {\n var extender = extenders[i];\n\n for (var key in extender) {\n if (Object.prototype.hasOwnProperty.call(extender, key)) {\n var value = extender[key];\n\n if (deep && isCloneable(value)) {\n var base = Array.isArray(value) ? [] : {};\n result[key] = extend(true, Object.prototype.hasOwnProperty.call(result, key) && !isUnextendable(result[key]) ? result[key] : base, value);\n } else {\n result[key] = value;\n }\n }\n }\n }\n\n return result;\n}\n\nfunction isCloneable(obj) {\n return Array.isArray(obj) || {}.toString.call(obj) == '[object Object]';\n}\n\nfunction isUnextendable(val) {\n return !val || typeof val != 'object' && typeof val != 'function';\n}","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define([], factory);else if (typeof exports === 'object') exports[\"mailgo\"] = factory();else root[\"mailgo\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function () {\n return (\n /******/\n function () {\n // webpackBootstrap\n\n /******/\n var __webpack_modules__ = {\n /***/\n 91:\n /***/\n function _(module, __unused_webpack_exports, __webpack_require__) {\n // Imports\n var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(476);\n\n var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function (i) {\n return i[1];\n }); // Module\n\n\n ___CSS_LOADER_EXPORT___.push([module.id, \".m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:16.5px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{margin:0;padding:0;font-size:100%;line-height:1;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;overflow:hidden;min-width:200px;max-width:240px;background-color:#fff;opacity:.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,.5);border:3px solid #333;color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:.5s box-shadow}.m-modal .m-modal-content:hover,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:pre-line;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{white-space:pre-line;font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{cursor:pointer;padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#c0372a}.m-modal .m-modal-content a.m-gmail:hover,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{background-color:rgba(192,55,42,.08);color:#c0372a}.m-modal .m-modal-content a.m-outlook{color:#0967aa}.m-modal .m-modal-content a.m-outlook:hover,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{background-color:rgba(9,103,170,.08);color:#0967aa}.m-modal .m-modal-content a.m-yahoo{color:#4a00a0}.m-modal .m-modal-content a.m-yahoo:hover,.m-modal .m-modal-content a.m-yahoo:focus,.m-modal .m-modal-content a.m-yahoo:active{background-color:rgba(74,0,160,.08);color:#4a00a0}.m-modal .m-modal-content a.m-tg{color:#086da0}.m-modal .m-modal-content a.m-tg:hover,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{background-color:rgba(8,109,160,.08);color:#086da0}.m-modal .m-modal-content a.m-wa{color:#067466}.m-modal .m-modal-content a.m-wa:hover,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{background-color:rgba(6,116,102,.08);color:#067466}.m-modal .m-modal-content a.m-skype{color:#076d92}.m-modal .m-modal-content a.m-skype:hover,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{background-color:rgba(7,109,146,.08);color:#076d92}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,.08);color:#4a4a4a}.m-modal .m-modal-content a.m-custom-action{color:#0b790b}.m-modal .m-modal-content a.m-custom-action:hover,.m-modal .m-modal-content a.m-custom-action:focus,.m-modal .m-modal-content a.m-custom-action:active{background-color:rgba(11,121,11,.08);color:#0b790b}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(224,125,115,.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(76,156,215,.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-yahoo{color:#ac88d3}.m-modal.m-dark .m-modal-content a.m-yahoo:hover,.m-modal.m-dark .m-modal-content a.m-yahoo:focus,.m-modal.m-dark .m-modal-content a.m-yahoo:active{background-color:rgba(172,136,211,.08);color:#ac88d3}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(76,171,219,.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(76,210,192,.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(76,199,244,.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-custom-action{color:#b0ecb0}.m-modal.m-dark .m-modal-content a.m-custom-action:hover,.m-modal.m-dark .m-modal-content a.m-custom-action:focus,.m-modal.m-dark .m-modal-content a.m-custom-action:active{background-color:rgba(176,236,176,.08);color:#b0ecb0}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\", \"\"]); // Exports\n\n\n module.exports = ___CSS_LOADER_EXPORT___;\n /***/\n },\n\n /***/\n 476:\n /***/\n function _(module) {\n \"use strict\";\n /*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n */\n // css base code, injected by the css-loader\n // eslint-disable-next-line func-names\n\n module.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n };\n /***/\n\n },\n\n /***/\n 801:\n /***/\n function _(module, __unused_webpack_exports, __webpack_require__) {\n var result = __webpack_require__(91);\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n /***/\n\n },\n\n /***/\n 507:\n /***/\n function _(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\"; // ESM COMPAT FLAG\n\n __webpack_require__.r(__webpack_exports__); // EXPORTS\n\n\n __webpack_require__.d(__webpack_exports__, {\n \"default\": function _default() {\n return (\n /* binding */\n mailgo_lib\n );\n },\n \"getMailgoTypeByElement\": function getMailgoTypeByElement() {\n return (\n /* reexport */\n _getMailgoTypeByElement\n );\n },\n \"mailgo\": function mailgo() {\n return (\n /* reexport */\n src_mailgo\n );\n },\n \"mailgoCheckRender\": function mailgoCheckRender() {\n return (\n /* binding */\n _mailgoCheckRender\n );\n },\n \"mailgoClickListener\": function mailgoClickListener() {\n return (\n /* reexport */\n _mailgoClickListener\n );\n },\n \"mailgoDirectRender\": function mailgoDirectRender() {\n return (\n /* reexport */\n _mailgoDirectRender\n );\n },\n \"mailgoPreRender\": function mailgoPreRender() {\n return (\n /* reexport */\n _mailgoPreRender\n );\n },\n \"mailgoRender\": function mailgoRender() {\n return (\n /* reexport */\n _mailgoRender\n );\n },\n \"mailgoValidateEmail\": function mailgoValidateEmail() {\n return (\n /* reexport */\n _mailgoValidateEmail\n );\n },\n \"start\": function start() {\n return (\n /* binding */\n _start\n );\n }\n });\n\n ; // CONCATENATED MODULE: ../src/constants.ts\n // links\n\n var MAILTO = \"mailto:\";\n var MAILGO = \"mailgo:\";\n var TEL = \"tel:\";\n var CALLTO = \"callto:\";\n var SMS = \"sms:\"; // deep linking\n\n var outlookDeepLink = \"ms-outlook://\"; // no mailgo class\n\n var NO_MAILGO = \"no-mailgo\"; // responsive settings\n\n var DESKTOP = \"desktop\";\n var MOBILE = \"mobile\"; // mailgo modal types\n\n var MAILGO_MAIL = \"mailgo\";\n var MAILGO_TEL = \"mailgo-tel\";\n var MAILGO_SMS = \"mailgo-sms\"; // mailgo installation types\n\n var CLASSIC = \"classic\";\n var LESS_SPAM = \"less-spam\"; // useful html tags\n\n var spanHTMLTag = \"span\";\n var aHTMLTag = \"a\";\n var pHTMLTag = \"p\"; // default lang\n\n var defaultLang = \"en\"; // useful regexp\n\n var notNumber = new RegExp(\"[^0-9/]\", \"gi\");\n var leadingZeros = new RegExp(\"^0+\", \"gi\"); // custom action\n\n var customActionTextMaxLength = 20;\n ; // CONCATENATED MODULE: ../src/utils.ts\n // validate a single email with regex\n\n var validateEmail = function validateEmail(email) {\n return /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(email);\n }; // validate an array of emails\n\n\n var validateEmails = function validateEmails(arr) {\n return arr.every(validateEmail);\n }; // validate a single tel with regex\n\n\n var validateTel = function validateTel(tel) {\n return /^[+]{0,1}[\\s0-9]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*[p]{0,1}[\\s0-9]*$/.test(tel);\n }; // copy of a string\n\n\n var copyToClipboard = function copyToClipboard(str) {\n var el = document.createElement(\"textarea\");\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n var selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n\n return false;\n }; // set focus loop within modal\n\n\n var setFocusLoop = function setFocusLoop(ref) {\n var modal = ref;\n modal.querySelector(\".m-modal-content a:last-of-type\").addEventListener(\"keydown\", leaveLastLink);\n modal.querySelector(\".m-modal-content a:first-of-type\").addEventListener(\"keydown\", leaveFirstLink);\n };\n\n var leaveLastLink = function leaveLastLink(e) {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n e.target.closest(\"div\").querySelector(\"a:first-of-type\").focus();\n }\n };\n\n var leaveFirstLink = function leaveFirstLink(e) {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n e.target.closest(\"div\").querySelector(\"a:last-of-type\").focus();\n }\n };\n\n var truncate = function truncate(text, maxLength) {\n return text && text.length > maxLength ? text.substr(0, maxLength - 1) + \"...\" : text;\n };\n\n ; // CONCATENATED MODULE: ../i18n/languages.json\n\n var languages_namespaceObject = JSON.parse('[\"en\",\"it\",\"es\",\"de\",\"fr\",\"pt\",\"nl\",\"ru\",\"sv\",\"no\",\"dk\",\"is\",\"zh\",\"ja\",\"cs\"]');\n ; // CONCATENATED MODULE: ../i18n/translations.json\n\n var translations_namespaceObject = JSON.parse('{\"en\":{\"open_in_\":\"open in \",\"cc_\":\"cc \",\"bcc_\":\"bcc \",\"subject_\":\"subject \",\"body_\":\"body \",\"gmail\":\"Gmail\",\"outlook\":\"Outlook\",\"yahoo\":\"Yahoo Mail\",\"telegram\":\"Telegram\",\"whatsapp\":\"WhatsApp\",\"skype\":\"Skype\",\"call\":\"call\",\"open\":\"open\",\"_default\":\" default\",\"_as_default\":\" as default\",\"copy\":\"copy\",\"copied\":\"copied\"},\"it\":{\"open_in_\":\"apri con \",\"bcc_\":\"ccn \",\"subject_\":\"oggetto \",\"body_\":\"testo \",\"call\":\"chiama\",\"open\":\"apri\",\"_default\":\" \",\"_as_default\":\" \",\"copy\":\"copia\",\"copied\":\"copiato\"},\"es\":{\"open_in_\":\"abrir con \",\"bcc_\":\"cco \",\"subject_\":\"asunto \",\"body_\":\"cuerpo \",\"call\":\"llamar\",\"open\":\"abrir\",\"_default\":\" predefinido\",\"_as_default\":\" por defecto\",\"copy\":\"copiar\",\"copied\":\"copiado\"},\"de\":{\"open_in_\":\"Öffnen in \",\"subject_\":\"Betreff \",\"body_\":\"Nachricht \",\"call\":\"Anrufen\",\"open\":\"Öffnen\",\"_default\":\" mit Standard\",\"_as_default\":\" mit Standard\",\"copy\":\"kopieren\",\"copied\":\"kopiert\"},\"pt\":{\"open_in_\":\"abrir com \",\"bcc_\":\"cco \",\"subject_\":\"assunto \",\"body_\":\"corpo \",\"call\":\"ligar\",\"open\":\"abrir\",\"_default\":\" padrão\",\"_as_default\":\" por padrão\",\"copy\":\"copiar\",\"copied\":\"copiado\"},\"fr\":{\"open_in_\":\"Ouvrir dans \",\"bcc_\":\"cci \",\"subject_\":\"sujet \",\"body_\":\"contenu \",\"call\":\"Appeler\",\"open\":\"Ouvrir\",\"_default\":\" par défaut\",\"_as_default\":\" par défaut\",\"copy\":\"Copier\",\"copied\":\"copié\"},\"nl\":{\"subject_\":\"onderwerp \",\"body_\":\"bericht \",\"call\":\"bellen\",\"open\":\"openen\",\"_default\":\" standaard\",\"_as_default\":\" als standaard\",\"copy\":\"kopiëren\"},\"ru\":{\"open_in_\":\"открыть в \",\"subject_\":\"тема \",\"body_\":\"тело \",\"call\":\"позвонить\",\"open\":\"открыть\",\"_default\":\" по умолчанию\",\"_as_default\":\" по умолчанию\",\"copy\":\"скопировать\"},\"sv\":{\"open_in_\":\"öppna i \",\"subject_\":\"ämne \",\"body_\":\"meddelandetext \",\"call\":\"ring\",\"open\":\"öppna\",\"_default\":\" förval\",\"_as_default\":\" som förval\",\"copy\":\"kopiera\",\"copied\":\"kopierad\"},\"no\":{\"open_in_\":\"åpne i \",\"subject_\":\"emne \",\"call\":\"ringe\",\"open\":\"åpne\",\"_as_default\":\" som standard\",\"copy\":\"kopiere\",\"copied\":\"kopiert\"},\"dk\":{\"open_in_\":\"åpne i \",\"subject_\":\"emne \",\"call\":\"ringe op\",\"open\":\"åben\",\"_as_default\":\" som standard\",\"copy\":\"kopi\",\"copied\":\"kopieret\"},\"is\":{\"open_in_\":\"opið inn \",\"subject_\":\"viðfangsefni \",\"body_\":\"líkami \",\"call\":\"hringja\",\"open\":\"opið\",\"_default\":\" sjálfgefið\",\"_as_default\":\" sem sjálfgefið\",\"copy\":\"afrita\",\"copied\":\"afritað\"},\"zh\":{\"open_in_\":\"開啟 \",\"cc_\":\"副本 \",\"bcc_\":\"密件副本 \",\"subject_\":\"主旨 \",\"body_\":\"內文 \",\"call\":\"通話\",\"open\":\"開啟\",\"_default\":\" 預設\",\"_as_default\":\" 預設\",\"copy\":\"複製\",\"copied\":\"已複製\"},\"ja\":{\"open_in_\":\"開く \",\"subject_\":\"主題 \",\"body_\":\"本文 \",\"call\":\"通話 \",\"open\":\"開く \",\"_default\":\" 標準のアプリ\",\"_as_default\":\" 標準のアプリ\",\"copy\":\"リンクをコピー\",\"copied\":\"コピーしました\"},\"cs\":{\"open_in_\":\"otevřít v \",\"cc_\":\"kopie \",\"subject_\":\"předmět \",\"body_\":\"zpráva \",\"call\":\"volat\",\"open\":\"otevřít\",\"_default\":\" výchozí\",\"_as_default\":\" s výchozím nastavením\",\"copy\":\"kopírovat\",\"copied\":\"zkopírováno\"}}');\n ; // CONCATENATED MODULE: ../src/mobile-detect.ts\n\n var userAgent = function userAgent() {\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n return \"mobile\";\n }\n\n return \"desktop\";\n };\n\n ; // CONCATENATED MODULE: ../src/mailgo.ts\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n } // polyfill\n // import { mailgoPolyfill } from \"./polyfill\";\n // constants\n // utils\n // i18n for mailgo\n // mobile detect\n // mailgo scss, with toString (https://github.com/webpack-contrib/css-loader#tostring)\n\n\n var mailgoCSS = __webpack_require__(801).toString(); // default language\n\n\n var lang = defaultLang; // default strings\n\n var defaultStrings = translations_namespaceObject[defaultLang]; // translation strings\n\n var strings; // global mailgo config object\n\n var config; // config to check if the client is mobile or desktop\n\n var isMobile = false; // default config attributes\n\n var mailtoEnabled = true;\n var telEnabled = true;\n var smsEnabled = false;\n var desktopEnabled = true;\n var mobileEnabled = true;\n var validateEmailConfig = true;\n var validateTelConfig = true;\n var showFooterConfig = true;\n var loadCSSConfig = true; // activeMailgoType\n\n var activeMailgoType; // modals global object\n\n var modalMailto, modalTel; // mailgo general variables\n\n var url, href, lessSpamHref; // mailgo mail variables\n\n var mail, cc, bcc, subject, bodyMail; // mailgo mail custom action variables\n\n var customActionText, customActionTitle, customActionUrl; // mailgo tel variables\n\n var tel, msg, telegramUsername, skypeUsername; // the DOM elements\n\n var title, titleTel, detailCc, detailBcc, detailSubject, detailBody, detailMsg, ccValue, bccValue, subjectValue, bodyValue, msgValue, activatedLink; // mailgo buttons (actions)\n\n var gmail, outlook, yahoo, mailgo_open, telegram, wa, skype, call, copyMail, copyTel, customAction;\n /**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\n\n var mailgoInit = function mailgoInit() {\n // set the boolean for mobile/desktop\n isMobile = userAgent() === MOBILE; // responsive settings\n\n {\n var _config, _config2;\n\n if (typeof ((_config = config) === null || _config === void 0 ? void 0 : _config.desktop) !== \"undefined\") {\n desktopEnabled = config.desktop; // if it is a desktop and desktop is not enabled no init mailgo\n\n if (!isMobile && !desktopEnabled) {\n return;\n }\n }\n\n if (typeof ((_config2 = config) === null || _config2 === void 0 ? void 0 : _config2.mobile) !== \"undefined\") {\n mobileEnabled = config.mobile; // if it is a mobile and mobile is not enabled no init mailgo\n\n if (isMobile && !mobileEnabled) {\n return;\n }\n }\n } // set the mailgo language\n\n mailgoSetLanguage(); // mailgo, if mailgo not already exists\n\n var mailgoExists = !!document.getElementById(MAILGO_MAIL); // if mailgo is enabled for mailto and it not exists in DOM\n\n if (mailtoEnabled && !mailgoExists) {\n var _config3, _config4; // modal\n\n\n modalMailto = createElement();\n modalMailto.style.display = \"none\";\n modalMailto.id = MAILGO_MAIL;\n modalMailto.classList.add(\"m-modal\");\n modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\"); // if dark is in config\n\n if ((_config3 = config) !== null && _config3 !== void 0 && _config3.dark) {\n enableDarkMode();\n } else {\n disableDarkMode();\n } // background\n\n\n var modalBackground = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground); // modal content\n\n var modalContent = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent); // title (email address)\n\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title); // details\n\n var details = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n var ccSpan = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n var bccSpan = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n var subjectSpan = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(createTextNode(strings.subject_ || defaultStrings.subject_));\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n var bodySpan = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n modalContent.appendChild(details); // Gmail\n\n gmail = createElement(aHTMLTag);\n gmail.id = \"m-gmail\";\n gmail.href = \"#mailgo-gmail\";\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var gmailSpan = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(createTextNode(strings.gmail || defaultStrings.gmail));\n gmail.appendChild(gmailSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"gmail\")) {\n modalContent.appendChild(gmail);\n } // Outlook\n\n\n outlook = createElement(aHTMLTag);\n outlook.id = \"m-outlook\";\n outlook.href = \"#mailgo-outlook\";\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var outlookSpan = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(createTextNode(strings.outlook || defaultStrings.outlook));\n outlook.appendChild(outlookSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"outlook\")) {\n modalContent.appendChild(outlook);\n } // Outlook\n\n\n yahoo = createElement(aHTMLTag);\n yahoo.id = \"m-yahoo\";\n yahoo.href = \"#mailgo-yahoo\";\n yahoo.classList.add(\"m-open\");\n yahoo.classList.add(\"m-yahoo\");\n yahoo.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var yahooSpan = createElement(spanHTMLTag);\n yahooSpan.className = \"w-500\";\n yahooSpan.appendChild(createTextNode(strings.yahoo || defaultStrings.yahoo));\n yahoo.appendChild(yahooSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"yahoo\")) {\n modalContent.appendChild(yahoo);\n } // open default\n\n\n mailgo_open = createElement(aHTMLTag);\n mailgo_open.id = \"m-open\";\n mailgo_open.href = \"#mailgo-open\";\n mailgo_open.classList.add(\"m-open\");\n mailgo_open.classList.add(\"m-default\");\n var openSpan = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n mailgo_open.appendChild(openSpan);\n mailgo_open.appendChild(createTextNode(strings._default || defaultStrings._default));\n modalContent.appendChild(mailgo_open); // copy\n\n copyMail = createElement(aHTMLTag);\n copyMail.id = \"m-copy\";\n copyMail.href = \"#mailgo-copy\";\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n modalContent.appendChild(copyMail); // custom action\n\n customAction = createElement(aHTMLTag);\n customAction.id = \"m-custom-action\";\n customAction.href = \"#mailgo-custom-action\";\n customAction.classList.add(\"m-open\");\n customAction.classList.add(\"m-custom-action\");\n\n if (mailgoConfigAttributeEnabled(\"action\", \"custom\")) {\n modalContent.appendChild(customAction);\n } // hide mailgo.dev in footer only if showFooter is defined and equal to false\n\n\n if (typeof ((_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.showFooter) !== \"undefined\") {\n showFooterConfig = config.showFooter;\n }\n\n if (showFooterConfig) {\n modalContent.appendChild(byElement());\n } // add the modal at the end of the body\n\n\n document.body.appendChild(modalMailto); // every click outside the modal will hide the modal\n\n modalBackground.addEventListener(\"click\", hideMailgo);\n } // mailgo tel, if mailgo-tel not already exists\n\n\n var mailgoTelExists = !!document.getElementById(MAILGO_TEL); // if mailgo is enabled for tel/callto and it not exists in DOM\n\n if (telEnabled && !mailgoTelExists) {\n var _config5, _config6; // modal\n\n\n modalTel = createElement();\n modalTel.style.display = \"none\";\n modalTel.id = MAILGO_TEL;\n modalTel.classList.add(\"m-modal\");\n modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\"); // if dark is in config\n\n if ((_config5 = config) !== null && _config5 !== void 0 && _config5.dark) {\n enableDarkMode();\n } else {\n disableDarkMode();\n } // background\n\n\n var _modalBackground = createElement();\n\n _modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(_modalBackground); // modal content\n\n var _modalContent = createElement();\n\n _modalContent.className = \"m-modal-content\";\n modalTel.appendChild(_modalContent); // title (telephone number)\n\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n\n _modalContent.appendChild(titleTel); // details\n\n\n var detailsTel = createElement();\n detailsTel.id = \"m-tel-details\";\n detailsTel.className = \"m-details\";\n detailMsg = createElement(pHTMLTag);\n detailMsg.id = \"m-msg\";\n var msgSpan = createElement(spanHTMLTag);\n msgSpan.className = \"w-500\";\n msgSpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n msgValue = createElement(spanHTMLTag);\n msgValue.id = \"m-msg-value\";\n detailMsg.appendChild(msgSpan);\n detailMsg.appendChild(msgValue);\n detailsTel.appendChild(detailMsg);\n\n _modalContent.appendChild(detailsTel); // Telegram\n\n\n telegram = createElement(aHTMLTag);\n telegram.id = \"m-tg\";\n telegram.href = \"#mailgo-telegram\";\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\"); // by default not display\n\n telegram.style.display = \"none\";\n telegram.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var telegramSpan = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(createTextNode(strings.telegram || defaultStrings.telegram));\n telegram.appendChild(telegramSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"telegram\")) {\n _modalContent.appendChild(telegram);\n } // WhatsApp\n\n\n wa = createElement(aHTMLTag);\n wa.id = \"m-wa\";\n wa.href = \"#mailgo-whatsapp\";\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var waSpan = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(createTextNode(strings.whatsapp || defaultStrings.whatsapp));\n wa.appendChild(waSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"whatsapp\")) {\n _modalContent.appendChild(wa);\n } // Skype\n\n\n skype = createElement(aHTMLTag);\n skype.id = \"m-skype\";\n skype.href = \"#mailgo-skype\";\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var skypeSpan = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(createTextNode(strings.skype || defaultStrings.skype));\n skype.appendChild(skypeSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"skype\")) {\n _modalContent.appendChild(skype);\n } // call default\n\n\n call = createElement(aHTMLTag);\n call.id = \"m-call\";\n call.href = \"#mailgo-open\";\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n var callSpan = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(createTextNode(strings._as_default || defaultStrings._as_default));\n\n _modalContent.appendChild(call); // copy\n\n\n copyTel = createElement(aHTMLTag);\n copyTel.id = \"m-tel-copy\";\n copyTel.href = \"#mailgo-copy\";\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n _modalContent.appendChild(copyTel); // hide mailgo.dev in footer only if showFooter is defined and equal to false\n\n\n if (typeof ((_config6 = config) === null || _config6 === void 0 ? void 0 : _config6.showFooter) !== \"undefined\") {\n showFooterConfig = config.showFooter;\n }\n\n if (showFooterConfig) {\n _modalContent.appendChild(byElement());\n } // add the modal at the end of the body\n\n\n document.body.appendChild(modalTel); // every click outside the modal will hide the modal\n\n _modalBackground.addEventListener(\"click\", hideMailgo);\n } // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n\n\n document.addEventListener(\"click\", _mailgoClickListener);\n };\n /**\n * mailgoClickListener\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"sms:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\n\n\n function _mailgoClickListener(event) {\n // check if the mailgo HTML exists in the body\n if (!document.body.contains(modalMailto) && !document.body.contains(modalTel)) {\n return false;\n } // if a mailgo is already showing do nothing\n\n\n if (mailgoIsShowing()) {\n return false;\n } // the path of the event\n\n\n var path = event.composedPath && event.composedPath() || composedPath(event.target);\n\n if (path) {\n path.forEach(function (element) {\n if (element instanceof HTMLDocument || element instanceof Window) {\n return false;\n } // go here only if one of the mailgo modals are enabled\n\n\n if (mailtoEnabled || telEnabled || smsEnabled) {\n var localMailgoType = _getMailgoTypeByElement(element); // go on if the localMailgoType is not null\n\n\n if (localMailgoType) {\n var _activeMailgoType; // set the active mailgo type\n\n\n activeMailgoType = localMailgoType;\n var activeMailgoModalType = (_activeMailgoType = activeMailgoType) === null || _activeMailgoType === void 0 ? void 0 : _activeMailgoType.type;\n\n if (activeMailgoModalType) {\n // check if the setting is enabled and if so go with pre-render\n if (mailtoEnabled && activeMailgoModalType === MAILGO_MAIL || telEnabled && activeMailgoModalType === MAILGO_TEL || smsEnabled && activeMailgoModalType === MAILGO_SMS) {\n // stop the normal execution of the element click\n event.preventDefault(); // render mailgo\n\n _mailgoPreRender(element);\n\n return true;\n }\n }\n }\n }\n });\n }\n\n return false;\n }\n /**\n * mailgoPreRender\n * function to pre-render a mailgo, it helps populating elements needed by modal\n */\n\n\n function _mailgoPreRender(mailgoElementOrUrl) {\n var _activeMailgoType2, _activeMailgoType3, _config9;\n\n var mailgoElement; // get the type and installation from current mailgo type\n\n var type = (_activeMailgoType2 = activeMailgoType) === null || _activeMailgoType2 === void 0 ? void 0 : _activeMailgoType2.type;\n var installation = (_activeMailgoType3 = activeMailgoType) === null || _activeMailgoType3 === void 0 ? void 0 : _activeMailgoType3.installation; // if type is not defined return\n\n if (!type) return false;\n\n if (typeof mailgoElementOrUrl === \"string\") {\n // if the parameter is a string it is the url\n href = mailgoElementOrUrl;\n } else {\n // if the paramenter is an HTMLLinkElement get the href attribute and the element\n href = mailgoElementOrUrl.getAttribute(\"href\");\n mailgoElement = mailgoElementOrUrl;\n } // mailgo mail\n\n\n if (type === MAILGO_MAIL) {\n var _config7; // if the installation is classic\n\n\n if (installation === CLASSIC) {\n if (validateUrl(href, MAILTO)) {\n mail = decodeURIComponent(href.split(\"?\")[0].split(MAILTO)[1].trim());\n } else if (validateUrl(href, MAILGO)) {\n mail = decodeURIComponent(href.split(\"?\")[0].split(MAILGO)[1].trim());\n }\n\n try {\n url = new URL(href);\n var urlParams = url.searchParams; // optional parameters for the email\n\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } catch (error) {\n console.log(error);\n }\n } else if (installation === LESS_SPAM) {\n // if the installation is less-spam\n // mail = data-address + @ + data-domain\n mail = mailgoElement.getAttribute(\"data-address\") && mailgoElement.getAttribute(\"data-domain\") ? mailgoElement.getAttribute(\"data-address\") + \"@\" + mailgoElement.getAttribute(\"data-domain\") : null;\n\n try {\n url = new URL(MAILTO + encodeURIComponent(mail));\n } catch (error) {\n console.log(error);\n }\n\n var parameters = []; // cc = data-cc-address + @ + data-cc-domain\n\n cc = mailgoElement.getAttribute(\"data-cc-address\") ? mailgoElement.getAttribute(\"data-cc-address\") + \"@\" + mailgoElement.getAttribute(\"data-cc-domain\") : null; // if cc is defined add it to parameters\n\n if (cc) parameters.push(\"cc=\" + cc); // bcc = data-bcc-address + @ + data-bcc-domain\n\n bcc = mailgoElement.getAttribute(\"data-bcc-address\") ? mailgoElement.getAttribute(\"data-bcc-address\") + \"@\" + mailgoElement.getAttribute(\"data-bcc-domain\") : null; // if bcc is defined add it to parameters\n\n if (bcc) parameters.push(\"bcc=\" + bcc); // subject = data-subject\n\n subject = mailgoElement.getAttribute(\"data-subject\"); // if subject is defined add it to parameters\n\n if (subject) parameters.push(\"subject=\" + subject); // body = data-body\n\n bodyMail = mailgoElement.getAttribute(\"data-body\"); // if body is defined add it to parameters\n\n if (bodyMail) parameters.push(\"body=\" + bodyMail); // set the lessSpamHref\n\n lessSpamHref = buildLessSpamHref(MAILTO + encodeURIComponent(mail), parameters);\n } // set custom action text, title and url\n\n\n customActionText = \"\";\n customActionTitle = \"\";\n customActionUrl = \"\";\n\n if (mailgoConfigAttributeEnabled(\"action\", \"custom\") && mailgoElement) {\n var _mailgoElement$getAtt, _mailgoElement$getAtt2;\n\n customActionText = (_mailgoElement$getAtt = mailgoElement.getAttribute(\"data-custom-action-text\")) !== null && _mailgoElement$getAtt !== void 0 ? _mailgoElement$getAtt : customActionText;\n\n if (customActionText) {\n customActionTitle = customActionText;\n customActionText = truncate(customActionText, customActionTextMaxLength);\n }\n\n customActionUrl = (_mailgoElement$getAtt2 = mailgoElement.getAttribute(\"data-custom-action-url\")) !== null && _mailgoElement$getAtt2 !== void 0 ? _mailgoElement$getAtt2 : customActionUrl;\n } // if is in config use it\n\n\n if (typeof ((_config7 = config) === null || _config7 === void 0 ? void 0 : _config7.validateEmail) !== \"undefined\") {\n validateEmailConfig = config.validateEmail;\n }\n\n if (validateEmailConfig) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) {\n return false;\n } // if cc, bcc are not valid cc, bcc = \"\"\n\n\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n } // mailgo tel\n else if (type === MAILGO_TEL) {\n var _config8;\n\n if (installation === CLASSIC) {\n if (validateUrl(href, TEL)) {\n tel = decodeURIComponent(href.split(\"?\")[0].split(TEL)[1].trim());\n } else if (validateUrl(href, CALLTO)) {\n tel = decodeURIComponent(href.split(\"?\")[0].split(CALLTO)[1].trim());\n } else if (validateUrl(href, SMS)) {\n tel = decodeURIComponent(href.split(\"?\")[0].split(SMS)[1].trim());\n }\n\n try {\n url = new URL(href);\n var _urlParams = url.searchParams; // optional parameters for the phone number\n\n msg = _urlParams.get(\"body\");\n } catch (error) {\n console.log(error);\n }\n } else if (installation == LESS_SPAM) {\n tel = mailgoElement.getAttribute(\"data-tel\");\n msg = mailgoElement.getAttribute(\"data-msg\");\n\n try {\n url = new URL(TEL + encodeURIComponent(tel));\n } catch (error) {\n console.log(error);\n }\n\n var _parameters = []; // if msg is defined add it to parameters\n\n if (msg) _parameters.push(\"body=\" + msg); // set the lessSpamHref\n\n lessSpamHref = buildLessSpamHref(TEL + encodeURIComponent(tel), _parameters);\n } // if is in config use it\n\n\n if (typeof ((_config8 = config) === null || _config8 === void 0 ? void 0 : _config8.validateTel) !== \"undefined\") {\n validateTelConfig = config.validateTel;\n } // validate the phone number\n\n\n if (validateTelConfig) {\n if (!validateTel(tel)) return false;\n } // Telegram username\n\n\n if (mailgoElement && mailgoElement.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgoElement.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n } // Telegram username\n\n\n if (mailgoElement && mailgoElement.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgoElement.getAttribute(\"data-skype\");\n } else {\n skypeUsername = null;\n }\n } // if dark is in config or contained in the element\n\n\n if ((_config9 = config) !== null && _config9 !== void 0 && _config9.dark || mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode();\n } else {\n disableDarkMode();\n } // render mailgo\n\n\n _mailgoRender();\n\n return true;\n }\n /**\n * mailgoDirectRender\n * function to render a mailgo directly from a URL\n */\n\n\n function _mailgoDirectRender(directUrl) {\n // start mailgo\n mailgo();\n\n if (validateUrl(directUrl, MAILTO) || validateUrl(directUrl, MAILGO)) {\n activeMailgoType = {\n type: MAILGO_MAIL,\n installation: CLASSIC\n };\n return _mailgoPreRender(directUrl);\n } else if (validateUrl(directUrl, TEL) || validateUrl(directUrl, CALLTO) || validateUrl(directUrl, SMS)) {\n activeMailgoType = {\n type: MAILGO_TEL,\n installation: CLASSIC\n };\n return _mailgoPreRender(directUrl);\n }\n\n return false;\n }\n /**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\n\n\n function _mailgoRender() {\n var _activeMailgoType4; // get the type from current mailgo type\n\n\n var type = (_activeMailgoType4 = activeMailgoType) === null || _activeMailgoType4 === void 0 ? void 0 : _activeMailgoType4.type; // if type is not defined return\n\n if (!type) return false; // mailgo mail\n\n if (type === MAILGO_MAIL) {\n // the title of the modal (email address)\n title.textContent = mail.split(\",\").join(\"\\n\"); // add the details if provided\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"cc\") && cc) {\n detailCc.style.display = \"block\";\n ccValue.textContent = cc.split(\",\").join(\"\\n\");\n } else {\n detailCc.style.display = \"none\";\n }\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"bcc\") && bcc) {\n detailBcc.style.display = \"block\";\n bccValue.textContent = bcc.split(\",\").join(\"\\n\");\n } else {\n detailBcc.style.display = \"none\";\n }\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"subject\") && subject) {\n detailSubject.style.display = \"block\";\n subjectValue.textContent = subject;\n } else {\n detailSubject.style.display = \"none\";\n }\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"body\") && bodyMail) {\n detailBody.style.display = \"block\";\n bodyValue.textContent = bodyMail;\n } else {\n detailBody.style.display = \"none\";\n } // custom action text, title and visibility\n\n\n customAction.textContent = customActionText;\n customAction.title = customActionTitle;\n customAction.style.display = customActionText ? \"block\" : \"none\"; // add the actions\n\n gmail.addEventListener(\"click\", openGmail);\n outlook.addEventListener(\"click\", openOutlook);\n yahoo.addEventListener(\"click\", openYahooMail);\n mailgo_open.addEventListener(\"click\", openDefault);\n copyMail.addEventListener(\"click\", copy);\n customAction.addEventListener(\"click\", openCustomAction);\n } // mailgo tel\n else if (type === MAILGO_TEL) {\n // the title of the modal (tel)\n titleTel.textContent = tel;\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"msg\") && msg) {\n detailMsg.style.display = \"block\";\n msgValue.textContent = msg;\n } else {\n detailMsg.style.display = \"none\";\n } // add the actions to buttons\n\n\n wa.addEventListener(\"click\", openWhatsApp); // telegram must be shown only if data-telegram is provided\n\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n call.addEventListener(\"click\", openDefault);\n copyTel.addEventListener(\"click\", copy);\n } // show the mailgo\n\n\n showMailgo(type); // add listener keyDown\n\n document.addEventListener(\"keydown\", mailgoKeydown);\n return true;\n } // actions\n\n\n var openGmail = function openGmail(event) {\n var _activeMailgoType5;\n\n event.preventDefault();\n var urlString;\n var installation = (_activeMailgoType5 = activeMailgoType) === null || _activeMailgoType5 === void 0 ? void 0 : _activeMailgoType5.installation;\n\n if (installation === CLASSIC) {\n try {\n urlString = url.toString();\n } catch (e) {\n urlString = href;\n }\n } else if (installation === LESS_SPAM) {\n urlString = lessSpamHref;\n } // Gmail url\n\n\n var gmailUrl = \"https://mail.google.com/mail/?extsrc=mailto&url=\" + encodeURIComponent(urlString); // open the link\n\n window.open(gmailUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n };\n\n var openOutlook = function openOutlook(event) {\n var _config10;\n\n event.preventDefault(); // Outlook starting url\n\n var startingOutlookUrl = \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\"; // let the user to decide to open Office365 Outlook instead of the classic outlook.live.com\n\n if ((_config10 = config) !== null && _config10 !== void 0 && _config10.office365) {\n startingOutlookUrl = \"https://outlook.office365.com/owa/?path=/mail/action/compose&to=\";\n } // Outlook url\n\n\n var outlookUrl = startingOutlookUrl + encodeURIComponent(mail); // the details if provided\n\n if (subject) {\n outlookUrl = outlookUrl.concat(\"&subject=\" + encodeURIComponent(subject));\n }\n\n if (bodyMail) {\n outlookUrl = outlookUrl.concat(\"&body=\" + encodeURIComponent(bodyMail));\n } // open the link\n\n\n window.open(outlookUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n };\n\n var openYahooMail = function openYahooMail(event) {\n event.preventDefault(); // Yahoo url\n\n var yahooUrl = \"https://compose.mail.yahoo.com/?to=\" + mail; // the details if provided\n\n if (subject) {\n yahooUrl = yahooUrl.concat(\"&subject=\" + encodeURIComponent(subject));\n }\n\n if (bodyMail) {\n yahooUrl = yahooUrl.concat(\"&body=\" + encodeURIComponent(bodyMail));\n } // open the link\n\n\n window.open(yahooUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n };\n\n var openTelegram = function openTelegram(event) {\n event.preventDefault(); // check if telegramUsername exists\n\n if (telegramUsername) {\n // Telegram url\n var tgUrl = \"https://t.me/\" + encodeURIComponent(telegramUsername); // open the url\n\n window.open(tgUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n }\n };\n\n var openSkype = function openSkype(event) {\n event.preventDefault();\n var skype = skypeUsername || tel; // Telegram url\n\n var skypeUrl = \"skype:\" + encodeURIComponent(skype); // open the url\n\n window.open(skypeUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n };\n\n var openWhatsApp = function openWhatsApp(event) {\n event.preventDefault(); // WhatsApp API doesn't work with non number digits and leading 0s: https://faq.whatsapp.com/general/chats/how-to-use-click-to-chat/\n\n var whatappTel = tel.replace(notNumber, \"\").replace(leadingZeros, \"\"); // WhatsApp url\n\n var waUrl = \"https://wa.me/\" + encodeURIComponent(whatappTel); // the details if provided\n\n if (msg) {\n waUrl = waUrl.concat(\"?text=\" + encodeURIComponent(msg));\n } // open the url\n\n\n window.open(waUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n };\n\n var openDefault = function openDefault(event) {\n var _activeMailgoType6;\n\n event.preventDefault();\n var installation = (_activeMailgoType6 = activeMailgoType) === null || _activeMailgoType6 === void 0 ? void 0 : _activeMailgoType6.installation; // if the installation is classic the browser can follow the default behaviour\n\n if (installation === CLASSIC) {\n window.location.href = href;\n } else if (installation === LESS_SPAM) {\n // if the installation is less-spam use the built less-spam href\n window.location.href = lessSpamHref;\n }\n\n hideMailgo();\n };\n\n var copy = function copy(event) {\n event.preventDefault(); // the correct copyButton (mail or tel)\n\n if (mailgoIsShowing()) {\n var _activeMailgoType7;\n\n var activeCopy;\n var type = (_activeMailgoType7 = activeMailgoType) === null || _activeMailgoType7 === void 0 ? void 0 : _activeMailgoType7.type;\n\n if (type === MAILGO_MAIL) {\n // in case it is showing mail modal copy email address\n copyToClipboard(mail);\n activeCopy = copyMail;\n } else {\n // in case it is showing tel modal copy phone number\n copyToClipboard(tel);\n activeCopy = copyTel;\n }\n\n activeCopy.textContent = strings.copied || defaultStrings.copied;\n setTimeout(function () {\n activeCopy.textContent = strings.copy || defaultStrings.copy; // hide after the timeout\n\n hideMailgo();\n }, 999);\n }\n };\n\n var openCustomAction = function openCustomAction(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n\n if (customActionUrl) {\n var customActionUrlEncoded = encodeURI(customActionUrl);\n window.open(customActionUrlEncoded, \"_blank\", \"noopener, noreferrer\");\n }\n\n hideMailgo();\n }; // function to find if a link is a mailto, tel, callto or sms\n\n\n var validateUrl = function validateUrl(url) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : MAILTO;\n var regexValidate = new RegExp(\"^\" + type + \"((.)+)\", \"gi\");\n return regexValidate.test(url);\n }; // function that returns if an element is a mailgo\n\n\n function _getMailgoTypeByElement(element) {\n var _element$classList, _element$classList2, _element$classList3;\n\n var linkElement = element;\n\n if (!linkElement.getAttribute) {\n return null;\n }\n\n var elementHref = linkElement.getAttribute(\"href\"); // return null if there is no-mailgo in class\n\n if ((_element$classList = element.classList) !== null && _element$classList !== void 0 && _element$classList.contains(NO_MAILGO)) {\n return null;\n } // the case of classic type of mailgo, like a href=mailto:... or a href=tel:... and the class=mailgo with a useful href\n\n\n if (elementHref || (_element$classList2 = element.classList) !== null && _element$classList2 !== void 0 && _element$classList2.contains(\"mailgo\")) {\n if (validateUrl(elementHref, MAILTO) || validateUrl(elementHref, MAILGO)) {\n // a mailto: or mailgo:\n return {\n type: MAILGO_MAIL,\n installation: CLASSIC\n };\n } else if (validateUrl(elementHref, TEL) || validateUrl(elementHref, CALLTO)) {\n // a tel: or callto:\n return {\n type: MAILGO_TEL,\n installation: CLASSIC\n };\n } else if (validateUrl(elementHref, SMS)) {\n // a sms:\n return {\n type: MAILGO_SMS,\n installation: CLASSIC\n };\n }\n }\n\n if (elementHref === \"#mailgo\" || (_element$classList3 = element.classList) !== null && _element$classList3 !== void 0 && _element$classList3.contains(\"mailgo\")) {\n // less-spam installation of mailgo, check to the attributes\n if (element.hasAttribute(\"data-address\") && element.hasAttribute(\"data-domain\")) {\n // less-spam mailto with data-address and data-domain\n return {\n type: MAILGO_MAIL,\n installation: LESS_SPAM\n };\n } else if (element.hasAttribute(\"data-tel\")) {\n // less-spam tel with data-tel\n return {\n type: MAILGO_TEL,\n installation: LESS_SPAM\n };\n } else if (element.hasAttribute(\"data-msg\")) {\n // less-spam sms with data-msd\n return {\n type: MAILGO_SMS,\n installation: LESS_SPAM\n };\n }\n }\n\n return null;\n }\n /**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing, return a boolean that represents if a useful key has been pressed\n */\n\n\n var mailgoKeydown = function mailgoKeydown(keyboardEvent) {\n // if mailgo is showing\n if (mailgoIsShowing()) {\n var _activeMailgoType8;\n\n var type = (_activeMailgoType8 = activeMailgoType) === null || _activeMailgoType8 === void 0 ? void 0 : _activeMailgoType8.type;\n\n if (type === MAILGO_MAIL) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n return true;\n\n case 71:\n // g -> open GMail\n openGmail();\n return true;\n\n case 79:\n // o -> open Outlook\n openOutlook();\n return true;\n\n case 89:\n // y -> open Yahoo Mail\n openYahooMail();\n return true;\n\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n return true;\n\n case 67:\n // c -> copy\n copy();\n return true;\n\n case 65:\n // a -> custom Action\n openCustomAction();\n return true;\n\n default:\n return false;\n }\n } else if (type === MAILGO_TEL) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n return true;\n\n case 84:\n // t -> open Telegram\n openTelegram();\n return true;\n\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n return true;\n\n case 83:\n // s -> open Skype\n openSkype();\n return true;\n\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n return true;\n\n case 67:\n // c -> copy\n copy();\n return true;\n\n default:\n return false;\n }\n }\n }\n\n return false;\n }; // show the modal\n\n\n var showMailgo = function showMailgo(type) {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n }; // hide the modal\n\n\n var hideMailgo = function hideMailgo() {\n // hide all the modals\n setModalDisplay(MAILGO_MAIL, \"none\");\n setModalDisplay(MAILGO_TEL, \"none\"); // remove listener keyDown\n\n document.removeEventListener(\"keydown\", mailgoKeydown);\n }; // is the mailgo modal hidden?\n\n\n var mailgoIsShowing = function mailgoIsShowing() {\n return mailtoEnabled && getModalDisplay(MAILGO_MAIL) === \"flex\" || (telEnabled || smsEnabled) && getModalDisplay(MAILGO_TEL) === \"flex\";\n };\n\n var byElement = function byElement() {\n // by element in the footer\n var by = createElement(aHTMLTag);\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n return by;\n }; // create element\n\n\n var createElement = function createElement() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"div\";\n return document.createElement(element);\n }; // create text node\n\n\n var createTextNode = function createTextNode(element) {\n return document.createTextNode(element);\n }; // get the correct HTMLElement from a type\n\n\n var getModalHTMLElement = function getModalHTMLElement() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAILGO_MAIL;\n\n if (type === MAILGO_TEL) {\n return modalTel;\n } else {\n return modalMailto;\n }\n }; // get display value\n\n\n var getModalDisplay = function getModalDisplay() {\n var ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAILGO_MAIL;\n return getModalHTMLElement(ref).style.display;\n }; // set display value\n\n\n var setModalDisplay = function setModalDisplay() {\n var ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAILGO_MAIL;\n var value = arguments.length > 1 ? arguments[1] : undefined;\n var modal = getModalHTMLElement(ref);\n\n if (modal) {\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement;\n modal.setAttribute(\"aria-hidden\", \"false\"); // Focus on the modal container.\n\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\"); // focus back the activated link for getting back to the context.\n\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n }\n }; // enable dark mode\n\n\n var enableDarkMode = function enableDarkMode() {\n var _activeMailgoType9; // get the type from current mailgo type\n\n\n var type = (_activeMailgoType9 = activeMailgoType) === null || _activeMailgoType9 === void 0 ? void 0 : _activeMailgoType9.type;\n\n if (type) {\n getModalHTMLElement(type).classList.add(\"m-dark\");\n }\n }; // disable dark mode\n\n\n var disableDarkMode = function disableDarkMode() {\n var _activeMailgoType10; // get the type from current mailgo type\n\n\n var type = (_activeMailgoType10 = activeMailgoType) === null || _activeMailgoType10 === void 0 ? void 0 : _activeMailgoType10.type;\n\n if (type) {\n getModalHTMLElement(type).classList.remove(\"m-dark\");\n }\n }; // custom composedPath if path or event.composedPath() are not defined\n\n\n var composedPath = function composedPath(el) {\n var path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n }; // function to recreate a mailto: or tel: href from less-spam\n\n\n var buildLessSpamHref = function buildLessSpamHref(type, parameters) {\n lessSpamHref = type;\n\n if (parameters && parameters.length > 0) {\n var joinedParams = parameters.join(\"&\");\n lessSpamHref = lessSpamHref.concat(\"?\" + joinedParams);\n }\n\n return lessSpamHref;\n }; // function to check an attribute is enabled or not, by default considering it enabled\n\n\n var mailgoConfigAttributeEnabled = function mailgoConfigAttributeEnabled(type, attribute) {\n // by default all the actions and attribute are enabled\n if (!config) {\n return true;\n } // if the attribute type is action consider the actions config attribute\n\n\n if (type === \"action\") {\n var _config11, _config12;\n\n if (config && !((_config11 = config) !== null && _config11 !== void 0 && _config11.actions)) {\n return true;\n }\n\n if (config && config.actions && ((_config12 = config) === null || _config12 === void 0 ? void 0 : _config12.actions[attribute]) === false) {\n return false;\n }\n } else if (type === \"detail\") {\n var _config13, _config14; // else consider the details attribute\n\n\n if (config && !((_config13 = config) !== null && _config13 !== void 0 && _config13.details)) {\n return true;\n }\n\n if (config && config.details && ((_config14 = config) === null || _config14 === void 0 ? void 0 : _config14.details[attribute]) === false) {\n return false;\n }\n }\n\n return true;\n }; // manage the language of mailgo\n\n\n var mailgoSetLanguage = function mailgoSetLanguage() {\n var _config15;\n\n var languageType = \"default lang\"; // if a language is defined in configuration use it\n\n if ((_config15 = config) !== null && _config15 !== void 0 && _config15.lang && languages_namespaceObject.indexOf(config.lang) !== -1) {\n lang = config.lang;\n languageType = \"config lang\";\n } else {\n // else if is defined use it!\n // keep the lang from html\n var htmlLang = document.documentElement.lang; // find the correct language using the lang attribute, not just a === because there a are cases like fr-FR or fr_FR in html lang attribute\n\n languages_namespaceObject.forEach(function (language) {\n if (new RegExp(\"^\" + language, \"gi\").test(htmlLang)) {\n lang = language;\n languageType = \"html lang\";\n }\n });\n } // strings\n\n\n strings = translations_namespaceObject[lang];\n return languageType;\n };\n\n var mailgoStyle = function mailgoStyle() {\n if (!document.getElementById(\"mailgo-style\")) {\n // mailgo style\n var mailgoCSSElement = createElement(\"style\");\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n }\n };\n\n function _mailgoValidateEmail(email) {\n return validateEmail(email);\n } // mailgo\n\n\n function mailgo(mailgoConfig) {\n try {\n var _window; // polyfill mailgo\n // mailgoPolyfill();\n // set the global config merging window mailgConfig and mailgoConfig passed as a parameter\n\n\n config = _objectSpread(_objectSpread({}, mailgoConfig), ((_window = window) === null || _window === void 0 ? void 0 : _window.mailgoConfig) || null); // if the window is defined...\n\n if (typeof window !== \"undefined\") {\n var _config16, _config17, _config18, _config19, _config20; // if is set in config use it (load the mailgo CSS)\n\n\n if (typeof ((_config16 = config) === null || _config16 === void 0 ? void 0 : _config16.loadCSS) !== \"undefined\") {\n loadCSSConfig = config.loadCSS;\n } // if is set in config use it (enable mailto)\n\n\n if (typeof ((_config17 = config) === null || _config17 === void 0 ? void 0 : _config17.mailto) !== \"undefined\") {\n mailtoEnabled = config.mailto;\n } // if is set in config use it (enable tel)\n\n\n if (typeof ((_config18 = config) === null || _config18 === void 0 ? void 0 : _config18.tel) !== \"undefined\") {\n telEnabled = config.tel;\n } // if is set in config use it (enable sms)\n\n\n if (typeof ((_config19 = config) === null || _config19 === void 0 ? void 0 : _config19.sms) !== \"undefined\") {\n smsEnabled = config.sms;\n } // if load css enabled load it!\n\n\n if (loadCSSConfig) {\n // add the style for mailgo\n mailgoStyle();\n } // if is set an initEvent add the listener\n\n\n if ((_config20 = config) !== null && _config20 !== void 0 && _config20.initEvent) {\n var _config21;\n\n if ((_config21 = config) !== null && _config21 !== void 0 && _config21.listenerOptions) {\n // listener options specified\n document.addEventListener(config.initEvent, mailgoInit, config.listenerOptions);\n } else {\n // no listener options\n document.addEventListener(config.initEvent, mailgoInit);\n }\n } else {\n mailgoInit();\n }\n\n return true;\n }\n } catch (error) {\n console.log(error);\n }\n\n return false;\n } // define the methods also for window element\n\n\n if (typeof window !== \"undefined\") {\n window.getMailgoTypeByElement = _getMailgoTypeByElement;\n window.mailgoClickListener = _mailgoClickListener;\n window.mailgoCheckRender = _mailgoClickListener; // for compatibility with old version of mailgo\n\n window.mailgoPreRender = _mailgoPreRender;\n window.mailgoDirectRender = _mailgoDirectRender;\n window.mailgoRender = _mailgoRender;\n window.mailgoValidateEmail = _mailgoValidateEmail;\n window.mailgo = mailgo;\n }\n /* harmony default export */\n\n\n var src_mailgo = mailgo;\n ; // CONCATENATED MODULE: ./mailgo.lib.ts\n // webpack > lib/mailgo.js\n // start function\n\n var _start = src_mailgo; // compatibility with old version of mailgo\n\n var _mailgoCheckRender = _mailgoClickListener;\n /* harmony default export */\n\n var mailgo_lib = src_mailgo;\n /***/\n }\n /******/\n\n };\n /************************************************************************/\n\n /******/\n // The module cache\n\n /******/\n\n var __webpack_module_cache__ = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n // Check if module is in cache\n\n /******/\n var cachedModule = __webpack_module_cache__[moduleId];\n /******/\n\n if (cachedModule !== undefined) {\n /******/\n return cachedModule.exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = __webpack_module_cache__[moduleId] = {\n /******/\n id: moduleId,\n\n /******/\n // no module.loaded needed\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n __webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n\n return module.exports;\n /******/\n }\n /******/\n\n /************************************************************************/\n\n /******/\n\n /* webpack/runtime/define property getters */\n\n /******/\n\n\n !function () {\n /******/\n // define getter functions for harmony exports\n\n /******/\n __webpack_require__.d = function (exports, definition) {\n /******/\n for (var key in definition) {\n /******/\n if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n /******/\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: definition[key]\n });\n /******/\n }\n /******/\n\n }\n /******/\n\n };\n /******/\n\n }();\n /******/\n\n /******/\n\n /* webpack/runtime/hasOwnProperty shorthand */\n\n /******/\n\n !function () {\n /******/\n __webpack_require__.o = function (obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n };\n /******/\n\n }();\n /******/\n\n /******/\n\n /* webpack/runtime/make namespace object */\n\n /******/\n\n !function () {\n /******/\n // define __esModule on exports\n\n /******/\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n }();\n /******/\n\n /************************************************************************/\n\n /******/\n\n /******/\n // startup\n\n /******/\n // Load entry module and return exports\n\n /******/\n // This entry module doesn't tell about it's top-level declarations so it can't be inlined\n\n /******/\n\n var __webpack_exports__ = __webpack_require__(507);\n /******/\n\n /******/\n\n\n return __webpack_exports__;\n /******/\n }()\n );\n});","/*! For license information please see index.js.LICENSE.txt */\n!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define([], t) : \"object\" == typeof exports ? exports.ReactCookieConsent = t() : e.ReactCookieConsent = t();\n}(\"undefined\" != typeof self ? self : this, function () {\n return function () {\n var e = {\n 808: function _(e, t, n) {\n var o, r, i;\n void 0 === (r = \"function\" == typeof (o = i = function i() {\n function e() {\n for (var e = 0, t = {}; e < arguments.length; e++) {\n var n = arguments[e];\n\n for (var o in n) {\n t[o] = n[o];\n }\n }\n\n return t;\n }\n\n function t(e) {\n return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n\n return function n(o) {\n function r() {}\n\n function i(t, n, i) {\n if (\"undefined\" != typeof document) {\n \"number\" == typeof (i = e({\n path: \"/\"\n }, r.defaults, i)).expires && (i.expires = new Date(1 * new Date() + 864e5 * i.expires)), i.expires = i.expires ? i.expires.toUTCString() : \"\";\n\n try {\n var c = JSON.stringify(n);\n /^[\\{\\[]/.test(c) && (n = c);\n } catch (e) {}\n\n n = o.write ? o.write(n, t) : encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), t = encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var l = \"\";\n\n for (var s in i) {\n i[s] && (l += \"; \" + s, !0 !== i[s] && (l += \"=\" + i[s].split(\";\")[0]));\n }\n\n return document.cookie = t + \"=\" + n + l;\n }\n }\n\n function c(e, n) {\n if (\"undefined\" != typeof document) {\n for (var r = {}, i = document.cookie ? document.cookie.split(\"; \") : [], c = 0; c < i.length; c++) {\n var l = i[c].split(\"=\"),\n s = l.slice(1).join(\"=\");\n n || '\"' !== s.charAt(0) || (s = s.slice(1, -1));\n\n try {\n var a = t(l[0]);\n if (s = (o.read || o)(s, a) || t(s), n) try {\n s = JSON.parse(s);\n } catch (e) {}\n if (r[a] = s, e === a) break;\n } catch (e) {}\n }\n\n return e ? r[e] : r;\n }\n }\n\n return r.set = i, r.get = function (e) {\n return c(e, !1);\n }, r.getJSON = function (e) {\n return c(e, !0);\n }, r.remove = function (t, n) {\n i(t, \"\", e(n, {\n expires: -1\n }));\n }, r.defaults = {}, r.withConverter = n, r;\n }(function () {});\n }) ? o.call(t, n, t, e) : o) || (e.exports = r), e.exports = i();\n },\n 703: function _(e, t, n) {\n \"use strict\";\n\n var o = n(414);\n\n function r() {}\n\n function i() {}\n\n i.resetWarningCache = r, e.exports = function () {\n function e(e, t, n, r, i, c) {\n if (c !== o) {\n var l = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");\n throw l.name = \"Invariant Violation\", l;\n }\n }\n\n function t() {\n return e;\n }\n\n e.isRequired = e;\n var n = {\n array: e,\n bool: e,\n func: e,\n number: e,\n object: e,\n string: e,\n symbol: e,\n any: e,\n arrayOf: t,\n element: e,\n elementType: e,\n instanceOf: t,\n node: e,\n objectOf: t,\n oneOf: t,\n oneOfType: t,\n shape: t,\n exact: t,\n checkPropTypes: i,\n resetWarningCache: r\n };\n return n.PropTypes = n, n;\n };\n },\n 697: function _(e, t, n) {\n e.exports = n(703)();\n },\n 414: function _(e) {\n \"use strict\";\n\n e.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n }\n },\n t = {};\n\n function n(o) {\n var r = t[o];\n if (void 0 !== r) return r.exports;\n var i = t[o] = {\n exports: {}\n };\n return e[o](i, i.exports, n), i.exports;\n }\n\n n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, {\n a: t\n }), t;\n }, n.d = function (e, t) {\n for (var o in t) {\n n.o(t, o) && !n.o(e, o) && Object.defineProperty(e, o, {\n enumerable: !0,\n get: t[o]\n });\n }\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n };\n var o = {};\n return function () {\n \"use strict\";\n\n n.r(o), n.d(o, {\n Cookies: function Cookies() {\n return l();\n },\n OPTIONS: function OPTIONS() {\n return h;\n },\n SAME_SITE_OPTIONS: function SAME_SITE_OPTIONS() {\n return C;\n },\n VISIBLE_OPTIONS: function VISIBLE_OPTIONS() {\n return g;\n },\n default: function _default() {\n return T;\n },\n getCookieConsentValue: function getCookieConsentValue() {\n return S;\n },\n resetCookieConsentValue: function resetCookieConsentValue() {\n return k;\n }\n });\n\n var e = require(\"react\");\n\n var t = n.n(e),\n r = n(697),\n i = n.n(r),\n c = n(808),\n l = n.n(c);\n\n function s(e) {\n return (s = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n\n var a = [\"children\"];\n\n function u() {\n return (u = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var o in n) {\n Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n }\n\n function p(e, t) {\n var n = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n t && (o = o.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), n.push.apply(n, o);\n }\n\n return n;\n }\n\n function f(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {};\n t % 2 ? p(Object(n), !0).forEach(function (t) {\n m(e, t, n[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : p(Object(n)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n });\n }\n\n return e;\n }\n\n function b(e, t) {\n for (var n = 0; n < t.length; n++) {\n var o = t[n];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);\n }\n }\n\n function y(e, t) {\n return (y = Object.setPrototypeOf || function (e, t) {\n return e.__proto__ = t, e;\n })(e, t);\n }\n\n function d(e, t) {\n if (t && (\"object\" === s(t) || \"function\" == typeof t)) return t;\n if (void 0 !== t) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return v(e);\n }\n\n function v(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }\n\n function O(e) {\n return (O = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n })(e);\n }\n\n function m(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n }\n\n var h = {\n TOP: \"top\",\n BOTTOM: \"bottom\",\n NONE: \"none\"\n },\n C = {\n STRICT: \"strict\",\n LAX: \"lax\",\n NONE: \"none\"\n },\n g = {\n HIDDEN: \"hidden\",\n SHOW: \"show\",\n BY_COOKIE_VALUE: \"byCookieValue\"\n },\n S = function S() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : j,\n t = l().get(e);\n return void 0 === t && (t = l().get(x(e))), t;\n },\n k = function k() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : j;\n l().remove(e);\n },\n x = function x(e) {\n return \"\".concat(e, \"-legacy\");\n },\n j = \"CookieConsent\",\n w = function w(e) {\n var t = e.condition,\n n = e.wrapper,\n o = e.children;\n return t ? n(o) : o;\n },\n B = function (e) {\n !function (e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), t && y(e, t);\n }(s, e);\n var n,\n o,\n r,\n i,\n c = (r = s, i = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }(), function () {\n var e,\n t = O(r);\n\n if (i) {\n var n = O(this).constructor;\n e = Reflect.construct(t, arguments, n);\n } else e = t.apply(this, arguments);\n\n return d(this, e);\n });\n\n function s(e) {\n var t;\n return function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, s), m(v(t = c.call(this, e)), \"handleScroll\", function () {\n var e = t.props.acceptOnScrollPercentage,\n n = document.documentElement,\n o = document.body,\n r = \"scrollTop\",\n i = \"scrollHeight\";\n (n[r] || o[r]) / ((n[i] || o[i]) - n.clientHeight) * 100 > e && t.accept(!0);\n }), m(v(t), \"removeScrollListener\", function () {\n t.props.acceptOnScroll && window.removeEventListener(\"scroll\", t.handleScroll);\n }), t.state = {\n visible: !1,\n style: {\n alignItems: \"baseline\",\n background: \"#353535\",\n color: \"white\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n left: \"0\",\n position: \"fixed\",\n width: \"100%\",\n zIndex: \"999\"\n },\n buttonStyle: {\n background: \"#ffd42d\",\n border: \"0\",\n borderRadius: \"0px\",\n boxShadow: \"none\",\n color: \"black\",\n cursor: \"pointer\",\n flex: \"0 0 auto\",\n padding: \"5px 10px\",\n margin: \"15px\"\n },\n declineButtonStyle: {\n background: \"#c12a2a\",\n border: \"0\",\n borderRadius: \"0px\",\n boxShadow: \"none\",\n color: \"#e5e5e5\",\n cursor: \"pointer\",\n flex: \"0 0 auto\",\n padding: \"5px 10px\",\n margin: \"15px\"\n },\n contentStyle: {\n flex: \"1 0 300px\",\n margin: \"15px\"\n },\n overlayStyle: {\n position: \"fixed\",\n left: 0,\n top: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: \"999\",\n backgroundColor: \"rgba(0,0,0,0.3)\"\n }\n }, t;\n }\n\n return n = s, (o = [{\n key: \"componentDidMount\",\n value: function value() {\n var e = this.props.debug;\n (void 0 === this.getCookieValue() || e) && (this.setState({\n visible: !0\n }), this.props.acceptOnScroll && window.addEventListener(\"scroll\", this.handleScroll, {\n passive: !0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function value() {\n this.removeScrollListener();\n }\n }, {\n key: \"accept\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0],\n t = this.props,\n n = t.cookieName,\n o = t.cookieValue,\n r = t.hideOnAccept,\n i = t.onAccept;\n this.setCookie(n, o), i(null != e && e), r && (this.setState({\n visible: !1\n }), this.removeScrollListener());\n }\n }, {\n key: \"overlayClick\",\n value: function value() {\n var e = this.props,\n t = e.acceptOnOverlayClick,\n n = e.onOverlayClick;\n t && this.accept(), n();\n }\n }, {\n key: \"decline\",\n value: function value() {\n var e = this.props,\n t = e.cookieName,\n n = e.declineCookieValue,\n o = e.hideOnDecline,\n r = e.onDecline;\n e.setDeclineCookie && this.setCookie(t, n), r(), o && this.setState({\n visible: !1\n });\n }\n }, {\n key: \"setCookie\",\n value: function value(e, t) {\n var n = this.props,\n o = n.extraCookieOptions,\n r = n.expires,\n i = n.sameSite,\n c = this.props.cookieSecurity;\n void 0 === c && (c = !location || \"https:\" === location.protocol);\n var s = f(f({\n expires: r\n }, o), {}, {\n sameSite: i,\n secure: c\n });\n i === C.NONE && l().set(x(e), t, s), l().set(e, t, s);\n }\n }, {\n key: \"getCookieValue\",\n value: function value() {\n var e = this.props.cookieName;\n return S(e);\n }\n }, {\n key: \"render\",\n value: function value() {\n var e = this;\n\n switch (this.props.visible) {\n case g.HIDDEN:\n return null;\n\n case g.BY_COOKIE_VALUE:\n if (!this.state.visible) return null;\n }\n\n var n = this.props,\n o = n.location,\n r = n.style,\n i = n.buttonStyle,\n c = n.declineButtonStyle,\n l = n.contentStyle,\n s = n.disableStyles,\n a = n.buttonText,\n p = n.declineButtonText,\n b = n.containerClasses,\n y = n.contentClasses,\n d = n.buttonClasses,\n v = n.buttonWrapperClasses,\n O = n.declineButtonClasses,\n m = n.buttonId,\n C = n.declineButtonId,\n S = n.disableButtonStyles,\n k = n.enableDeclineButton,\n x = n.flipButtons,\n j = n.ButtonComponent,\n B = n.overlay,\n T = n.overlayClasses,\n E = n.overlayStyle,\n P = n.ariaAcceptLabel,\n D = n.ariaDeclineLabel,\n I = n.customContainerAttributes,\n _ = n.customContentAttributes,\n A = n.customButtonProps,\n N = {},\n R = {},\n L = {},\n V = {},\n U = {};\n\n switch (s ? (N = u({}, r), R = u({}, i), L = u({}, c), V = u({}, l), U = u({}, E)) : (N = u({}, f(f({}, this.state.style), r)), V = u({}, f(f({}, this.state.contentStyle), l)), U = u({}, f(f({}, this.state.overlayStyle), E)), S ? (R = u({}, i), L = u({}, c)) : (R = u({}, f(f({}, this.state.buttonStyle), i)), L = u({}, f(f({}, this.state.declineButtonStyle), c)))), o) {\n case h.TOP:\n N.top = \"0\";\n break;\n\n case h.BOTTOM:\n N.bottom = \"0\";\n }\n\n var W = [];\n return k && W.push(t().createElement(j, {\n key: \"declineButton\",\n style: L,\n className: O,\n id: C,\n \"aria-label\": D,\n onClick: function onClick() {\n e.decline();\n }\n }, p)), W.push(t().createElement(j, u({}, A, {\n key: \"acceptButton\",\n style: R,\n className: d,\n id: m,\n \"aria-label\": P,\n onClick: function onClick() {\n e.accept();\n }\n }), a)), x && W.reverse(), t().createElement(w, {\n condition: B,\n wrapper: function wrapper(n) {\n return t().createElement(\"div\", {\n style: U,\n className: T,\n onClick: function onClick() {\n e.overlayClick();\n }\n }, n);\n }\n }, t().createElement(\"div\", u({\n className: \"\".concat(b),\n style: N\n }, I), t().createElement(\"div\", u({\n style: V,\n className: y\n }, _), this.props.children), t().createElement(\"div\", {\n className: \"\".concat(v)\n }, W.map(function (e) {\n return e;\n }))));\n }\n }]) && b(n.prototype, o), s;\n }(e.Component);\n\n B.propTypes = {\n location: i().oneOf(Object.keys(h).map(function (e) {\n return h[e];\n })),\n visible: i().oneOf(Object.keys(g).map(function (e) {\n return g[e];\n })),\n sameSite: i().oneOf(Object.keys(C).map(function (e) {\n return C[e];\n })),\n style: i().object,\n buttonStyle: i().object,\n declineButtonStyle: i().object,\n contentStyle: i().object,\n children: i().any,\n disableStyles: i().bool,\n hideOnAccept: i().bool,\n hideOnDecline: i().bool,\n onAccept: i().func,\n onDecline: i().func,\n buttonText: i().oneOfType([i().string, i().func, i().element]),\n declineButtonText: i().oneOfType([i().string, i().func, i().element]),\n cookieName: i().string,\n cookieValue: i().oneOfType([i().string, i().bool, i().number]),\n declineCookieValue: i().oneOfType([i().string, i().bool, i().number]),\n setDeclineCookie: i().bool,\n debug: i().bool,\n expires: i().number,\n containerClasses: i().string,\n contentClasses: i().string,\n buttonClasses: i().string,\n buttonWrapperClasses: i().string,\n declineButtonClasses: i().string,\n buttonId: i().string,\n declineButtonId: i().string,\n extraCookieOptions: i().object,\n disableButtonStyles: i().bool,\n enableDeclineButton: i().bool,\n flipButtons: i().bool,\n ButtonComponent: i().elementType,\n cookieSecurity: i().bool,\n overlay: i().bool,\n overlayClasses: i().string,\n overlayStyle: i().object,\n onOverlayClick: i().func,\n acceptOnOverlayClick: i().bool,\n ariaAcceptLabel: i().string,\n ariaDeclineLabel: i().string,\n acceptOnScroll: i().bool,\n acceptOnScrollPercentage: i().number,\n customContentAttributes: i().object,\n customContainerAttributes: i().object,\n customButtonProps: i().object\n }, B.defaultProps = {\n disableStyles: !1,\n hideOnAccept: !0,\n hideOnDecline: !0,\n location: h.BOTTOM,\n visible: g.BY_COOKIE_VALUE,\n onAccept: function onAccept() {},\n onDecline: function onDecline() {},\n cookieName: j,\n cookieValue: !0,\n declineCookieValue: !1,\n setDeclineCookie: !0,\n buttonText: \"I understand\",\n declineButtonText: \"I decline\",\n debug: !1,\n expires: 365,\n containerClasses: \"CookieConsent\",\n contentClasses: \"\",\n buttonClasses: \"\",\n buttonWrapperClasses: \"\",\n declineButtonClasses: \"\",\n buttonId: \"rcc-confirm-button\",\n declineButtonId: \"rcc-decline-button\",\n extraCookieOptions: {},\n disableButtonStyles: !1,\n enableDeclineButton: !1,\n flipButtons: !1,\n sameSite: C.LAX,\n ButtonComponent: function ButtonComponent(e) {\n var n = e.children,\n o = function (e, t) {\n if (null == e) return {};\n\n var n,\n o,\n r = function (e, t) {\n if (null == e) return {};\n var n,\n o,\n r = {},\n i = Object.keys(e);\n\n for (o = 0; o < i.length; o++) {\n n = i[o], t.indexOf(n) >= 0 || (r[n] = e[n]);\n }\n\n return r;\n }(e, t);\n\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n\n for (o = 0; o < i.length; o++) {\n n = i[o], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]);\n }\n }\n\n return r;\n }(e, a);\n\n return t().createElement(\"button\", o, n);\n },\n overlay: !1,\n overlayClasses: \"\",\n onOverlayClick: function onOverlayClick() {},\n acceptOnOverlayClick: !1,\n ariaAcceptLabel: \"Accept cookies\",\n ariaDeclineLabel: \"Decline cookies\",\n acceptOnScroll: !1,\n acceptOnScrollPercentage: 25,\n customContentAttributes: {},\n customContainerAttributes: {},\n customButtonProps: {}\n };\n var T = B;\n }(), o;\n }();\n});","import { useCallbackRef } from './useRef';\nimport { assignRef } from './assignRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\n\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue, function (newValue) {\n return refs.forEach(function (ref) {\n return assignRef(ref, newValue);\n });\n });\n}","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\n\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () {\n return {\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n\n set current(value) {\n var last = ref.value;\n\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n }\n\n }\n };\n })[0]; // update callback\n\n ref.callback = callback;\n return ref.facade;\n}","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n\n return ref;\n}","import * as React from 'react';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\n\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nimport { useEffect } from \"react\";\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = props.autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n shouldReturnFocus = props.returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n useEffect(function () {\n if (!disabled) {\n // cleanup return focus on trap deactivation\n // sideEffect/returnFocus should happen by this time\n originalFocusedElement.current = null;\n }\n }, []);\n var returnFocus = React.useCallback(function (allowDefer) {\n var returnFocusTo = originalFocusedElement.current;\n\n if (returnFocusTo && returnFocusTo.focus) {\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n\n if (Boolean(howToReturnFocus)) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n if (!observed.current) {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [/*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }),\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) // first tabbed element guard\n ], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n focusOptions: undefined,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\n};\nexport default FocusLock;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","var isRadio = function isRadio(node) {\n return node.tagName === 'INPUT' && node.type === 'radio';\n};\n\nvar findSelectedRadio = function findSelectedRadio(node, nodes) {\n return nodes.filter(isRadio).filter(function (el) {\n return el.name === node.name;\n }).filter(function (el) {\n return el.checked;\n })[0] || node;\n};\n\nexport var correctNode = function correctNode(node, nodes) {\n if (isRadio(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n\n return node;\n};\nexport var correctNodes = function correctNodes(nodes) {\n var resultSet = new Set();\n nodes.forEach(function (node) {\n return resultSet.add(correctNode(node, nodes));\n });\n return nodes.filter(function (node) {\n return resultSet.has(node);\n });\n};","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function pickFirstFocus(nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n\n return nodes[0];\n};\nexport var pickFocusable = function pickFocusable(nodes, index) {\n if (nodes.length > 1) {\n return nodes.indexOf(correctNode(nodes[index], nodes));\n }\n\n return index;\n};","var isElementHidden = function isElementHidden(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n\n var computedStyle = window.getComputedStyle(node, null);\n\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n\n return computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden';\n};\n\nvar isVisibleUncached = function isVisibleUncached(node, checkParent) {\n return !node || node === document || node && node.nodeType === Node.DOCUMENT_NODE || !isElementHidden(node) && checkParent(node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? node.parentNode.host : node.parentNode);\n};\n\nexport var isVisibleCached = function isVisibleCached(visibilityCache, node) {\n var cached = visibilityCache.get(node);\n\n if (cached !== undefined) {\n return cached;\n }\n\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nexport var notHiddenInput = function notHiddenInput(node) {\n return !((node.tagName === 'INPUT' || node.tagName === 'BUTTON') && (node.type === 'hidden' || node.disabled));\n};\nexport var isGuard = function isGuard(node) {\n return Boolean(node && node.dataset && node.dataset.focusGuard);\n};\nexport var isNotAGuard = function isNotAGuard(node) {\n return !isGuard(node);\n};\nexport var isDefined = function isDefined(x) {\n return Boolean(x);\n};","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\nexport var newFocus = function newFocus(innerNodes, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n\n if (innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n\n var activeIndex = outerNodes.indexOf(activeElement);\n var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var correctedIndexDiff = correctedNodes.indexOf(activeElement) - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n\n if (activeIndex === -1 || lastNodeInside === -1) {\n return NEW_FOCUS;\n }\n\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n\n if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n return lastNodeInside;\n }\n\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n\n return undefined;\n};","export var toArray = function toArray(a) {\n var ret = Array(a.length);\n\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n\n return ret;\n};\nexport var asArray = function asArray(a) {\n return Array.isArray(a) ? a : [a];\n};","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n\nvar filterNested = function filterNested(nodes) {\n var contained = new Set();\n var l = nodes.length;\n\n for (var i = 0; i < l; i += 1) {\n for (var j = i + 1; j < l; j += 1) {\n var position = nodes[i].compareDocumentPosition(nodes[j]);\n\n if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n contained.add(j);\n }\n\n if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n contained.add(i);\n }\n }\n }\n\n return nodes.filter(function (_, index) {\n return !contained.has(index);\n });\n};\n\nvar getTopParent = function getTopParent(node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n\nexport var getAllAffectedNodes = function getAllAffectedNodes(node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, group ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\" + FOCUS_GROUP + \"=\\\"\" + group + \"\\\"]:not([\" + FOCUS_DISABLED + \"=\\\"disabled\\\"])\"))) : [currentNode]);\n return acc;\n }, []);\n};","import { toArray } from './array';\nexport var tabSort = function tabSort(a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n\n if (tabDiff) {\n if (!a.tabIndex) {\n return 1;\n }\n\n if (!b.tabIndex) {\n return -1;\n }\n }\n\n return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function orderByTabIndex(nodes, filterNegative, keepGuards) {\n return toArray(nodes).map(function (node, index) {\n return {\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? (node.dataset || {}).focusGuard ? 0 : -1 : node.tabIndex\n };\n }).filter(function (data) {\n return !filterNegative || data.tabIndex >= 0;\n }).sort(tabSort);\n};","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = queryTabbables + \", [data-focus-guard]\";\nexport var getFocusables = function getFocusables(parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n return acc.concat(toArray(parent.querySelectorAll(withGuards ? queryGuardTabbables : queryTabbables)), parent.parentNode ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) {\n return node === parent;\n }) : []);\n }, []);\n};\nexport var getParentAutofocusables = function getParentAutofocusables(parent) {\n var parentFocus = parent.querySelectorAll(\"[\" + FOCUS_AUTO + \"]\");\n return toArray(parentFocus).map(function (node) {\n return getFocusables([node]);\n }).reduce(function (acc, nodes) {\n return acc.concat(nodes);\n }, []);\n};","export var tabbables = ['button:enabled', 'select:enabled', 'textarea:enabled', 'input:enabled', 'a[href]', 'area[href]', 'summary', 'iframe', 'object', 'embed', 'audio[controls]', 'video[controls]', '[tabindex]', '[contenteditable]', '[autofocus]'];","import { toArray } from './array';\nimport { isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\nexport var filterFocusable = function filterFocusable(nodes, visibilityCache) {\n return toArray(nodes).filter(function (node) {\n return isVisibleCached(visibilityCache, node);\n }).filter(function (node) {\n return notHiddenInput(node);\n });\n};\nexport var getTabbableNodes = function getTabbableNodes(topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\nexport var getAllTabbableNodes = function getAllTabbableNodes(topNodes, visibilityCache) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\nexport var parentAutofocusables = function parentAutofocusables(topNode, visibilityCache) {\n return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};","import { asArray } from './array';\nimport { parentAutofocusables } from './DOMutils';\n\nvar getParents = function getParents(node, parents) {\n if (parents === void 0) {\n parents = [];\n }\n\n parents.push(node);\n\n if (node.parentNode) {\n getParents(node.parentNode, parents);\n }\n\n return parents;\n};\n\nexport var getCommonParent = function getCommonParent(nodeA, nodeB) {\n var parentsA = getParents(nodeA);\n var parentsB = getParents(nodeB);\n\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n\n return false;\n};\nexport var getTopCommonParent = function getTopCommonParent(baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = false;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n\n if (common) {\n if (!topCommon || common.contains(topCommon)) {\n topCommon = common;\n } else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n return topCommon;\n};\nexport var allParentAutofocusables = function allParentAutofocusables(entries, visibilityCache) {\n return entries.reduce(function (acc, node) {\n return acc.concat(parentAutofocusables(node, visibilityCache));\n }, []);\n};","import { NEW_FOCUS, newFocus } from './solver';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getAllTabbableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { pickFirstFocus } from './utils/firstFocus';\nimport { isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\n\nvar findAutoFocused = function findAutoFocused(autoFocusables) {\n return function (node) {\n return node.autofocus || node.dataset && !!node.dataset.autofocus || autoFocusables.indexOf(node) >= 0;\n };\n};\n\nvar reorderNodes = function reorderNodes(srcNodes, dstNodes) {\n var remap = new Map();\n dstNodes.forEach(function (entity) {\n return remap.set(entity.node, entity);\n });\n return srcNodes.map(function (node) {\n return remap.get(node);\n }).filter(isDefined);\n};\n\nexport var getFocusMerge = function getFocusMerge(topNode, lastNode) {\n var activeElement = document && document.activeElement;\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var visibilityCache = new Map();\n var anyFocusable = getAllTabbableNodes(entries, visibilityCache);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n });\n\n if (!innerElements[0]) {\n innerElements = anyFocusable;\n\n if (!innerElements[0]) {\n return undefined;\n }\n }\n\n var outerNodes = getAllTabbableNodes([commonParent], visibilityCache).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n\n if (newId === NEW_FOCUS) {\n var autoFocusable = anyFocusable.map(function (_a) {\n var node = _a.node;\n return node;\n }).filter(findAutoFocused(allParentAutofocusables(entries, visibilityCache)));\n return {\n node: autoFocusable && autoFocusable.length ? pickFirstFocus(autoFocusable) : pickFirstFocus(innerNodes)\n };\n }\n\n if (newId === undefined) {\n return newId;\n }\n\n return orderedInnerElements[newId];\n};","import { getFocusMerge } from './focusMerge';\nexport var focusOn = function focusOn(target, focusOptions) {\n target.focus(focusOptions);\n\n if ('contentWindow' in target && target.contentWindow) {\n target.contentWindow.focus();\n }\n};\nvar guardCount = 0;\nvar lockDisabled = false;\nexport var setFocus = function setFocus(topNode, lastNode, options) {\n if (options === void 0) {\n options = {};\n }\n\n var focusable = getFocusMerge(topNode, lastNode);\n\n if (lockDisabled) {\n return;\n }\n\n if (focusable) {\n if (guardCount > 2) {\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' + 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n\n guardCount++;\n focusOn(focusable.node, options.focusOptions);\n guardCount--;\n }\n};","import * as constants from './constants';\nimport { getFocusabledIn } from './focusables';\nimport { focusInside } from './focusInside';\nimport { focusIsHidden } from './focusIsHidden';\nimport { getFocusMerge as focusMerge } from './focusMerge';\nimport { setFocus } from './setFocus';\nimport { focusNextElement, focusPrevElement } from './sibling';\nimport tabHook from './tabHook';\nimport { getAllAffectedNodes } from './utils/all-affected';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusabledIn, constants, getAllAffectedNodes, focusNextElement, focusPrevElement };\nexport default setFocus;","import { getAllAffectedNodes } from './utils/all-affected';\nimport { toArray } from './utils/array';\n\nvar focusInFrame = function focusInFrame(frame) {\n return frame === document.activeElement;\n};\n\nvar focusInsideIframe = function focusInsideIframe(topNode) {\n return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) {\n return focusInFrame(node);\n }));\n};\n\nexport var focusInside = function focusInside(topNode) {\n var activeElement = document && document.activeElement;\n\n if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) {\n return false;\n }\n\n return getAllAffectedNodes(topNode).reduce(function (result, node) {\n return result || node.contains(activeElement) || focusInsideIframe(node);\n }, false);\n};","import * as React from 'react';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !(focusInside(workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = getFocusabledIn(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n setTimeout(function () {\n focusWasOutsideWindow = 'meanwhile';\n }, 0);\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import { FOCUS_ALLOW } from './constants';\nimport { toArray } from './utils/array';\nexport var focusIsHidden = function focusIsHidden() {\n return document && toArray(document.querySelectorAll(\"[\" + FOCUS_ALLOW + \"]\")).some(function (node) {\n return node.contains(document.activeElement);\n });\n};","import { getAllAffectedNodes } from './utils/all-affected';\nimport { getTabbableNodes } from './utils/DOMutils';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\nexport var getFocusabledIn = function getFocusabledIn(topNode) {\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var visibilityCache = new Map();\n var outerNodes = getTabbableNodes([commonParent], visibilityCache, true);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n }).map(function (_a) {\n var node = _a.node;\n return node;\n });\n return outerNodes.map(function (_a) {\n var node = _a.node,\n index = _a.index;\n return {\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node)\n };\n });\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return ;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar;\n\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","import * as tslib_1 from \"tslib\";\n\nfunction ItoI(a) {\n return a;\n}\n\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function read() {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n\n return defaults;\n },\n useMedium: function useMedium(data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) {\n return x !== item;\n });\n };\n },\n assignSyncMedium: function assignSyncMedium(cb) {\n assigned = true;\n\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n\n buffer = {\n push: function push(x) {\n return cb(x);\n },\n filter: function filter() {\n return buffer;\n }\n };\n },\n assignMedium: function assignMedium(cb) {\n assigned = true;\n var pendingQueue = [];\n\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n\n var executeQueue = function executeQueue() {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n\n var cycle = function cycle() {\n return Promise.resolve().then(executeQueue);\n };\n\n cycle();\n buffer = {\n push: function push(x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function filter(_filter) {\n pendingQueue = pendingQueue.filter(_filter);\n return buffer;\n }\n };\n }\n };\n return medium;\n}\n\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n\n return innerCreateMedium(defaults, middleware);\n}\nexport function createSidecarMedium(options) {\n if (options === void 0) {\n options = {};\n }\n\n var medium = innerCreateMedium(null);\n medium.options = tslib_1.__assign({\n async: true,\n ssr: false\n }, options);\n return medium;\n}","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true\n});","export function deferAction(action) {\n // Hidding setImmediate from Webpack to avoid inserting polyfill\n var _window = window,\n setImmediate = _window.setImmediate;\n\n if (typeof setImmediate !== 'undefined') {\n setImmediate(action);\n } else {\n setTimeout(action, 1);\n }\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\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'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n 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);\n};\n\nexports.typeOf = z;","'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}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { counter, getId, getPrefix } from \"./context\"; // --------------------------------------------\n\nvar prefixId = function prefixId(id, prefix, name) {\n var uid = prefix + id;\n return String(name ? name(uid) : uid);\n};\n/**\n * @deprecated\n * UID in form of renderProps (not SSR friendly)\n * @see https://github.com/thearnica/react-uid#react-components\n * @example\n * // get UID to connect label to input\n * \n * {(id)} => \n *\n * // get uid to generate uid for a keys in a list\n * \n * {(, uid)} => items.map(item =>
  • )}\n * \n */\n\n\nvar UID =\n/** @class */\nfunction (_super) {\n __extends(UID, _super);\n\n function UID() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n quartz: _this.props.idSource || counter,\n prefix: getPrefix(_this.props.idSource),\n id: getId(_this.props.idSource || counter)\n };\n\n _this.uid = function (item) {\n return prefixId(_this.state.id + '-' + _this.state.quartz.uid(item), _this.state.prefix, _this.props.name);\n };\n\n return _this;\n }\n\n UID.prototype.render = function () {\n var _a = this.props,\n children = _a.children,\n name = _a.name;\n var _b = this.state,\n id = _b.id,\n prefix = _b.prefix;\n return children(prefixId(id, prefix, name), this.uid);\n };\n\n return UID;\n}(React.Component);\n\nexport { UID };","import * as React from 'react';\nimport { createSource, source } from \"./context\";\nimport { UID } from \"./UIDComponent\";\n/**\n * UID isolation component, required for SSR and testing.\n * Wrap your application with it to guarantee UID consistency between SSR and CSR.\n * @param {String} [prefix] - prefix for all generated ids\n * @example\n * \n * \n * \n * @see https://github.com/thearnica/react-uid#server-side-friendly-uid\n */\n\nexport var UIDReset = function UIDReset(_a) {\n var children = _a.children,\n _b = _a.prefix,\n prefix = _b === void 0 ? '' : _b;\n return React.createElement(source.Provider, {\n value: createSource(prefix)\n }, children);\n};\n/**\n * Creates a sub-ids for nested components, isolating from inside a branch.\n * Useful for self-contained elements or code splitting\n * @see https://github.com/thearnica/react-uid#code-splitting\n */\n\nexport var UIDFork = function UIDFork(_a) {\n var children = _a.children,\n _b = _a.prefix,\n prefix = _b === void 0 ? '' : _b;\n return React.createElement(UIDConsumer, null, function (id) {\n return React.createElement(source.Provider, {\n value: createSource(id + '-' + prefix)\n }, children);\n });\n};\n/**\n * UID in form of renderProps. Supports nesting and SSR. Prefer {@link useUID} hook version if possible.\n * @see https://github.com/thearnica/react-uid#server-side-friendly-uid\n * @see https://github.com/thearnica/react-uid#react-components\n * @example\n * // get UID to connect label to input\n * \n * {(id)} => \n *\n * // get uid to generate uid for a keys in a list\n * \n * {(, uid)} => items.map(item =>
  • )}\n * \n *\n * @see {@link useUID} - a hook version of this component\n * @see {@link UID} - not SSR compatible version\n */\n\nexport var UIDConsumer = function UIDConsumer(_a) {\n var name = _a.name,\n children = _a.children;\n return React.createElement(source.Consumer, null, function (value) {\n return React.createElement(UID, {\n name: name,\n idSource: value,\n children: children\n });\n });\n};","/**\n * generates a UID factory\n * @internal\n * @example\n * const uid = generateUID();\n * uid(object) = 1;\n * uid(object) = 1;\n * uid(anotherObject) = 2;\n */\nexport var generateUID = function generateUID() {\n var counter = 1;\n var map = new WeakMap();\n /**\n * @borrows {uid}\n */\n\n var uid = function uid(item, index) {\n if (typeof item === 'number' || typeof item === 'string') {\n return index ? \"idx-\" + index : \"val-\" + item;\n }\n\n if (!map.has(item)) {\n map.set(item, counter++);\n return uid(item);\n }\n\n return 'uid' + map.get(item);\n };\n\n return uid;\n};\n/**\n * @name uid\n * returns an UID associated with {item}\n * @param {Object} item - object to generate UID for\n * @param {Number} index, a fallback index\n * @example\n * uid(object) == 1;\n * uid(object) == 1;\n * uid(anotherObject) == 2;\n * uid(\"not object\", 42) == 42\n *\n * @see {@link useUID}\n */\n\nexport var uid = generateUID();","import * as React from 'react';\nimport { generateUID } from \"./uid\";\nexport var createSource = function createSource(prefix) {\n if (prefix === void 0) {\n prefix = '';\n }\n\n return {\n value: 1,\n prefix: prefix,\n uid: generateUID()\n };\n};\nexport var counter = createSource();\nexport var source = React.createContext(createSource());\nexport var getId = function getId(source) {\n return source.value++;\n};\nexport var getPrefix = function getPrefix(source) {\n return source ? source.prefix : '';\n};","import * as React from \"react\";\nimport { counter, getId, getPrefix, source } from \"./context\";\n\nvar generateUID = function generateUID(context) {\n var quartz = context || counter;\n var prefix = getPrefix(quartz);\n var id = getId(quartz);\n var uid = prefix + id;\n\n var gen = function gen(item) {\n return uid + quartz.uid(item);\n };\n\n return {\n uid: uid,\n gen: gen\n };\n};\n\nvar useUIDState = function useUIDState() {\n if (process.env.NODE_ENV !== \"production\") {\n if (!('useContext' in React)) {\n throw new Error('Hooks API requires React 16.8+');\n }\n } // @ts-ignore\n\n\n return React.useState(generateUID(React.useContext(source)));\n};\n/**\n * returns and unique id. SSR friendly\n * returns {String}\n * @see {@link UIDConsumer}\n * @see https://github.com/thearnica/react-uid#hooks-168\n * @example\n * const id = useUID();\n * id == 1; // for example\n */\n\n\nexport var useUID = function useUID() {\n var uid = useUIDState()[0].uid;\n return uid;\n};\n/**\n * returns an uid generator\n * @see {@link UIDConsumer}\n * @see https://github.com/thearnica/react-uid#hooks-168\n * @example\n * const uid = useUIDSeed();\n * return (\n * <>\n * \n * \n * {data.map(item =>
    ...
    \n * \n * )\n */\n\nexport var useUIDSeed = function useUIDSeed() {\n var gen = useUIDState()[0].gen;\n return gen;\n};","export default function capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","import capitalizeString from './capitalizeString';\nexport default function prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var newStyle = {};\n var requiredPrefixes = prefixProperties[property];\n var capitalizedProperty = capitalizeString(property);\n var keys = Object.keys(style);\n\n for (var i = 0; i < keys.length; i++) {\n var styleProperty = keys[i];\n\n if (styleProperty === property) {\n for (var j = 0; j < requiredPrefixes.length; j++) {\n newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];\n }\n }\n\n newStyle[styleProperty] = style[styleProperty];\n }\n\n return newStyle;\n }\n\n return style;\n}","export default function prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData); // we can stop processing if a value is returned\n // as all plugin criteria are unique\n\n if (processedValue) {\n return processedValue;\n }\n }\n}","function addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nexport default function addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","export default function isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","var w = [\"Webkit\"];\nvar m = [\"Moz\"];\nvar ms = [\"ms\"];\nvar wm = [\"Webkit\", \"Moz\"];\nvar wms = [\"Webkit\", \"ms\"];\nvar wmms = [\"Webkit\", \"Moz\", \"ms\"];\nexport default {\n plugins: [],\n prefixMap: {\n \"appearance\": wm,\n \"textEmphasisPosition\": w,\n \"textEmphasis\": w,\n \"textEmphasisStyle\": w,\n \"textEmphasisColor\": w,\n \"boxDecorationBreak\": w,\n \"maskImage\": w,\n \"maskMode\": w,\n \"maskRepeat\": w,\n \"maskPosition\": w,\n \"maskClip\": w,\n \"maskOrigin\": w,\n \"maskSize\": w,\n \"maskComposite\": w,\n \"mask\": w,\n \"maskBorderSource\": w,\n \"maskBorderMode\": w,\n \"maskBorderSlice\": w,\n \"maskBorderWidth\": w,\n \"maskBorderOutset\": w,\n \"maskBorderRepeat\": w,\n \"maskBorder\": w,\n \"maskType\": w,\n \"textDecorationStyle\": w,\n \"textDecorationSkip\": w,\n \"textDecorationLine\": w,\n \"textDecorationColor\": w,\n \"userSelect\": wmms,\n \"backdropFilter\": w,\n \"fontKerning\": w,\n \"scrollSnapType\": wms,\n \"scrollSnapPointsX\": wms,\n \"scrollSnapPointsY\": wms,\n \"scrollSnapDestination\": wms,\n \"scrollSnapCoordinate\": wms,\n \"clipPath\": w,\n \"shapeImageThreshold\": w,\n \"shapeImageMargin\": w,\n \"shapeImageOutside\": w,\n \"filter\": w,\n \"hyphens\": wms,\n \"flowInto\": wms,\n \"flowFrom\": wms,\n \"breakBefore\": wms,\n \"breakAfter\": wms,\n \"breakInside\": wms,\n \"regionFragment\": wms,\n \"writingMode\": wms,\n \"textOrientation\": w,\n \"tabSize\": m,\n \"fontFeatureSettings\": w,\n \"columnCount\": w,\n \"columnFill\": w,\n \"columnGap\": w,\n \"columnRule\": w,\n \"columnRuleColor\": w,\n \"columnRuleStyle\": w,\n \"columnRuleWidth\": w,\n \"columns\": w,\n \"columnSpan\": w,\n \"columnWidth\": w,\n \"wrapFlow\": ms,\n \"wrapThrough\": ms,\n \"wrapMargin\": ms,\n \"textSizeAdjust\": wms\n }\n};","var prefixes = ['-webkit-', '-moz-', ''];\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\nexport default function cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","import isPrefixedValue from 'css-in-js-utils/lib/isPrefixedValue'; // http://caniuse.com/#search=cross-fade\n\nvar prefixes = ['-webkit-', ''];\nexport default function crossFade(property, value) {\n if (typeof value === 'string' && !isPrefixedValue(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}","import isPrefixedValue from 'css-in-js-utils/lib/isPrefixedValue'; // http://caniuse.com/#feat=css-filter-function\n\nvar prefixes = ['-webkit-', ''];\nexport default function filter(property, value) {\n if (typeof value === 'string' && !isPrefixedValue(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}","var values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\nexport default function flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}","var alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\nexport default function flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}","import isPrefixedValue from 'css-in-js-utils/lib/isPrefixedValue';\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\nexport default function gradient(property, value) {\n if (typeof value === 'string' && !isPrefixedValue(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}","var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nfunction isSimplePositionValue(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction isComplexSpanValue(value) {\n return typeof value === 'string' && value.includes('/');\n}\n\nvar alignmentValues = ['center', 'end', 'start', 'stretch'];\nvar displayValues = {\n 'inline-grid': ['-ms-inline-grid', 'inline-grid'],\n grid: ['-ms-grid', 'grid']\n};\nvar propertyConverters = {\n alignSelf: function alignSelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridRowAlign = value;\n }\n },\n gridColumn: function gridColumn(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split = value.split('/'),\n _value$split2 = _slicedToArray(_value$split, 2),\n start = _value$split2[0],\n end = _value$split2[1];\n\n propertyConverters.gridColumnStart(+start, style);\n\n var _end$split = end.split(/ ?span /),\n _end$split2 = _slicedToArray(_end$split, 2),\n maybeSpan = _end$split2[0],\n maybeNumber = _end$split2[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridColumnEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridColumnEnd(+end, style);\n }\n } else {\n propertyConverters.gridColumnStart(value, style);\n }\n },\n gridColumnEnd: function gridColumnEnd(value, style) {\n var msGridColumn = style.msGridColumn;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridColumn)) {\n style.msGridColumnSpan = value - msGridColumn;\n }\n },\n gridColumnStart: function gridColumnStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n }\n },\n gridRow: function gridRow(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split3 = value.split('/'),\n _value$split4 = _slicedToArray(_value$split3, 2),\n start = _value$split4[0],\n end = _value$split4[1];\n\n propertyConverters.gridRowStart(+start, style);\n\n var _end$split3 = end.split(/ ?span /),\n _end$split4 = _slicedToArray(_end$split3, 2),\n maybeSpan = _end$split4[0],\n maybeNumber = _end$split4[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridRowEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridRowEnd(+end, style);\n }\n } else {\n propertyConverters.gridRowStart(value, style);\n }\n },\n gridRowEnd: function gridRowEnd(value, style) {\n var msGridRow = style.msGridRow;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridRow)) {\n style.msGridRowSpan = value - msGridRow;\n }\n },\n gridRowStart: function gridRowStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n }\n },\n gridTemplateColumns: function gridTemplateColumns(value, style) {\n style.msGridColumns = value;\n },\n gridTemplateRows: function gridTemplateRows(value, style) {\n style.msGridRows = value;\n },\n justifySelf: function justifySelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridColumnAlign = value;\n }\n }\n};\nexport default function grid(property, value, style) {\n if (property === 'display' && value in displayValues) {\n return displayValues[value];\n }\n\n if (property in propertyConverters) {\n var propertyConverter = propertyConverters[property];\n propertyConverter(value, style);\n }\n}","import isPrefixedValue from 'css-in-js-utils/lib/isPrefixedValue'; // http://caniuse.com/#feat=css-image-set\n\nvar prefixes = ['-webkit-', ''];\nexport default function imageSet(property, value) {\n if (typeof value === 'string' && !isPrefixedValue(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}","var alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\nexport default function logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}","var prefixes = ['-webkit-', '-moz-', ''];\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\nexport default function sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","import hyphenateProperty from 'css-in-js-utils/lib/hyphenateProperty';\nimport isPrefixedValue from 'css-in-js-utils/lib/isPrefixedValue';\nimport capitalizeString from '../utils/capitalizeString';\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if (isPrefixedValue(value)) {\n return value;\n } // only split multi values, not cubic beziers\n\n\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = hyphenateProperty(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nexport default function transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap); // if the property is already prefixed\n\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + capitalizeString(property)] = webkitOutput;\n style['Moz' + capitalizeString(property)] = mozOutput;\n return outputValue;\n }\n}","import createPrefixer from './createPrefixer';\nimport data from './data';\nimport backgroundClip from './plugins/backgroundClip';\nimport cursor from './plugins/cursor';\nimport crossFade from './plugins/crossFade';\nimport filter from './plugins/filter';\nimport flex from './plugins/flex';\nimport flexboxOld from './plugins/flexboxOld';\nimport gradient from './plugins/gradient';\nimport grid from './plugins/grid';\nimport imageSet from './plugins/imageSet';\nimport logical from './plugins/logical';\nimport position from './plugins/position';\nimport sizing from './plugins/sizing';\nimport transition from './plugins/transition';\nvar plugins = [backgroundClip, crossFade, cursor, filter, flexboxOld, gradient, grid, imageSet, logical, position, sizing, transition, flex];\nvar prefix = createPrefixer({\n prefixMap: data.prefixMap,\n plugins: plugins\n});\nexport { createPrefixer, prefix };","// https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip#Browser_compatibility\nexport default function backgroundClip(property, value) {\n if (typeof value === 'string' && value === 'text') {\n return ['-webkit-text', 'text'];\n }\n}","export default function position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}","import prefixProperty from './utils/prefixProperty';\nimport prefixValue from './utils/prefixValue';\nimport addNewValuesOnly from './utils/addNewValuesOnly';\nimport isObject from './utils/isObject';\nexport default function createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n return function prefix(style) {\n for (var property in style) {\n var value = style[property]; // handle nested objects\n\n if (isObject(value)) {\n style[property] = prefix(value); // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = prefixValue(plugins, property, value[i], style, prefixMap);\n addNewValuesOnly(combinedValue, processedValue || value[i]);\n } // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n\n\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = prefixValue(plugins, property, value, style, prefixMap); // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n\n\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = prefixProperty(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}","import { prefix } from 'inline-style-prefixer';\n\nvar SequentialIDGenerator = /*#__PURE__*/function () {\n function SequentialIDGenerator(prefix$$1) {\n if (prefix$$1 === void 0) {\n prefix$$1 = \"\";\n } // ensure start with \"ae\" so \"ad\" is never produced\n\n\n this.prefix = prefix$$1;\n this.count = 0;\n this.offset = 374;\n this.msb = 1295;\n this.power = 2;\n }\n\n var _proto = SequentialIDGenerator.prototype;\n\n _proto.next = function next() {\n var id = this.increment().toString(36);\n return this.prefix ? \"\" + this.prefix + id : id;\n };\n\n _proto.increment = function increment() {\n var id = this.count + this.offset;\n\n if (id === this.msb) {\n this.offset += (this.msb + 1) * 9;\n this.msb = Math.pow(36, ++this.power) - 1;\n }\n\n this.count++;\n return id;\n };\n\n return SequentialIDGenerator;\n}(); // adapted from https://github.com/dutchenkoOleg/sort-css-media-queries\n\n\nvar minMaxWidth = /(!?\\(\\s*min(-device-)?-width).+\\(\\s*max(-device)?-width/i;\nvar minWidth = /\\(\\s*min(-device)?-width/i;\nvar maxMinWidth = /(!?\\(\\s*max(-device)?-width).+\\(\\s*min(-device)?-width/i;\nvar maxWidth = /\\(\\s*max(-device)?-width/i;\n\nvar isMinWidth = _testQuery(minMaxWidth, maxMinWidth, minWidth);\n\nvar isMaxWidth = _testQuery(maxMinWidth, minMaxWidth, maxWidth);\n\nvar minMaxHeight = /(!?\\(\\s*min(-device)?-height).+\\(\\s*max(-device)?-height/i;\nvar minHeight = /\\(\\s*min(-device)?-height/i;\nvar maxMinHeight = /(!?\\(\\s*max(-device)?-height).+\\(\\s*min(-device)?-height/i;\nvar maxHeight = /\\(\\s*max(-device)?-height/i;\n\nvar isMinHeight = _testQuery(minMaxHeight, maxMinHeight, minHeight);\n\nvar isMaxHeight = _testQuery(maxMinHeight, minMaxHeight, maxHeight);\n\nvar isPrint = /print/i;\nvar isPrintOnly = /^print$/i;\nvar maxValue = Number.MAX_VALUE;\n\nfunction _getQueryLength(length) {\n var matches = /(-?\\d*\\.?\\d+)(ch|em|ex|px|rem)/.exec(length);\n\n if (matches === null) {\n return maxValue;\n }\n\n var number = matches[1];\n var unit = matches[2];\n\n switch (unit) {\n case \"ch\":\n number = parseFloat(number) * 8.8984375;\n break;\n\n case \"em\":\n case \"rem\":\n number = parseFloat(number) * 16;\n break;\n\n case \"ex\":\n number = parseFloat(number) * 8.296875;\n break;\n\n case \"px\":\n number = parseFloat(number);\n break;\n }\n\n return +number;\n}\n\nfunction _testQuery(doubleTestTrue, doubleTestFalse, singleTest) {\n return function (query) {\n if (doubleTestTrue.test(query)) {\n return true;\n } else if (doubleTestFalse.test(query)) {\n return false;\n }\n\n return singleTest.test(query);\n };\n}\n\nfunction _testIsPrint(a, b) {\n var isPrintA = isPrint.test(a);\n var isPrintOnlyA = isPrintOnly.test(a);\n var isPrintB = isPrint.test(b);\n var isPrintOnlyB = isPrintOnly.test(b);\n\n if (isPrintA && isPrintB) {\n if (!isPrintOnlyA && isPrintOnlyB) {\n return 1;\n }\n\n if (isPrintOnlyA && !isPrintOnlyB) {\n return -1;\n }\n\n return a.localeCompare(b);\n }\n\n if (isPrintA) {\n return 1;\n }\n\n if (isPrintB) {\n return -1;\n }\n\n return null;\n}\n\nfunction sortCSSmq(a, b) {\n if (a === \"\") {\n return -1;\n }\n\n if (b === \"\") {\n return 1;\n }\n\n var testIsPrint = _testIsPrint(a, b);\n\n if (testIsPrint !== null) {\n return testIsPrint;\n }\n\n var minA = isMinWidth(a) || isMinHeight(a);\n var maxA = isMaxWidth(a) || isMaxHeight(a);\n var minB = isMinWidth(b) || isMinHeight(b);\n var maxB = isMaxWidth(b) || isMaxHeight(b);\n\n if (minA && maxB) {\n return -1;\n }\n\n if (maxA && minB) {\n return 1;\n }\n\n var lengthA = _getQueryLength(a);\n\n var lengthB = _getQueryLength(b);\n\n if (lengthA === maxValue && lengthB === maxValue) {\n return a.localeCompare(b);\n } else if (lengthA === maxValue) {\n return 1;\n } else if (lengthB === maxValue) {\n return -1;\n }\n\n if (lengthA > lengthB) {\n if (maxA) {\n return -1;\n }\n\n return 1;\n }\n\n if (lengthA < lengthB) {\n if (maxA) {\n return 1;\n }\n\n return -1;\n }\n\n return a.localeCompare(b);\n}\n\nvar MultiCache = /*#__PURE__*/function () {\n function MultiCache(idGenerator, onNewCache, onNewValue) {\n this.idGenerator = idGenerator;\n this.onNewCache = onNewCache;\n this.onNewValue = onNewValue;\n this.sortedCacheKeys = [];\n this.caches = {};\n }\n\n var _proto = MultiCache.prototype;\n\n _proto.getCache = function getCache(key) {\n if (!this.caches[key]) {\n var _cache = new Cache(this.idGenerator, this.onNewValue);\n\n _cache.key = key;\n this.sortedCacheKeys.push(key);\n this.sortedCacheKeys.sort(sortCSSmq);\n var keyIndex = this.sortedCacheKeys.indexOf(key);\n var insertBeforeMedia = keyIndex < this.sortedCacheKeys.length - 1 ? this.sortedCacheKeys[keyIndex + 1] : void 0;\n this.caches[key] = _cache;\n this.onNewCache(key, _cache, insertBeforeMedia);\n }\n\n return this.caches[key];\n };\n\n _proto.getSortedCacheKeys = function getSortedCacheKeys() {\n return this.sortedCacheKeys;\n };\n\n return MultiCache;\n}();\n\nvar Cache = /*#__PURE__*/function () {\n function Cache(idGenerator, onNewValue) {\n this.cache = {};\n this.idGenerator = idGenerator;\n this.onNewValue = onNewValue;\n }\n\n var _proto2 = Cache.prototype;\n\n _proto2.addValue = function addValue(key, value) {\n var cached = this.cache[key];\n\n if (cached) {\n return cached;\n }\n\n var id = this.idGenerator.next();\n this.cache[key] = id;\n this.onNewValue(this, id, value);\n return id;\n };\n\n return Cache;\n}();\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction hyphenateStyleName(prop) {\n return prop in cache ? cache[prop] : cache[prop] = prop.replace(uppercasePattern, \"-$&\").toLowerCase().replace(msPattern, \"-ms-\");\n}\n/**\n * Adapted from https://github.com/gilmoreorless/css-shorthand-properties\n */\n\n\nvar shorthandMap = {\n // CSS 2.1: https://www.w3.org/TR/CSS2/propidx.html\n \"list-style\": [\"list-style-type\", \"list-style-position\", \"list-style-image\"],\n margin: [\"margin-top\", \"margin-right\", \"margin-bottom\", \"margin-left\"],\n outline: [\"outline-width\", \"outline-style\", \"outline-color\"],\n padding: [\"padding-top\", \"padding-right\", \"padding-bottom\", \"padding-left\"],\n // CSS Backgrounds and Borders Module Level 3: https://www.w3.org/TR/css3-background/\n background: [\"background-image\", \"background-position\", \"background-size\", \"background-repeat\", \"background-origin\", \"background-clip\", \"background-attachment\", \"background-color\"],\n border: [\"border-top-width\", \"border-right-width\", \"border-bottom-width\", \"border-left-width\", \"border-width\", \"border-top-style\", \"border-right-style\", \"border-bottom-style\", \"border-left-style\", \"border-style\", \"border-top-color\", \"border-right-color\", \"border-bottom-color\", \"border-left-color\", \"border-color\"],\n \"border-color\": [\"border-top-color\", \"border-right-color\", \"border-bottom-color\", \"border-left-color\"],\n \"border-style\": [\"border-top-style\", \"border-right-style\", \"border-bottom-style\", \"border-left-style\"],\n \"border-width\": [\"border-top-width\", \"border-right-width\", \"border-bottom-width\", \"border-left-width\"],\n \"border-top\": [\"border-top-width\", \"border-top-style\", \"border-top-color\"],\n \"border-right\": [\"border-right-width\", \"border-right-style\", \"border-right-color\"],\n \"border-bottom\": [\"border-bottom-width\", \"border-bottom-style\", \"border-bottom-color\"],\n \"border-left\": [\"border-left-width\", \"border-left-style\", \"border-left-color\"],\n \"border-radius\": [\"border-top-left-radius\", \"border-top-right-radius\", \"border-bottom-right-radius\", \"border-bottom-left-radius\"],\n \"border-image\": [\"border-image-source\", \"border-image-slice\", \"border-image-width\", \"border-image-outset\", \"border-image-repeat\"],\n // CSS Fonts Module Level 3: https://www.w3.org/TR/css3-fonts/\n font: [\"font-style\", \"font-variant-ligatures\", \"font-variant-alternates\", \"font-variant-caps\", \"font-variant-numeric\", \"font-variant-east-asian\", \"font-variant\", \"font-weight\", \"font-stretch\", \"font-size\", \"line-height\", \"font-family\"],\n \"font-variant\": [\"font-variant-ligatures\", \"font-variant-alternates\", \"font-variant-caps\", \"font-variant-numeric\", \"font-variant-east-asian\"],\n // CSS Flexible Box Layout Module Level 1: https://www.w3.org/TR/css3-flexbox-1/\n flex: [\"flex-grow\", \"flex-shrink\", \"flex-basis\"],\n \"flex-flow\": [\"flex-direction\", \"flex-wrap\"],\n // CSS Grid Layout Module Level 1: https://www.w3.org/TR/css-grid-1/\n grid: [\"grid-template-rows\", \"grid-template-columns\", \"grid-template-areas\", \"grid-auto-rows\", \"grid-auto-columns\", \"grid-auto-flow\"],\n \"grid-template\": [\"grid-template-rows\", \"grid-template-columns\", \"grid-template-areas\"],\n \"grid-row\": [\"grid-row-start\", \"grid-row-end\"],\n \"grid-column\": [\"grid-column-start\", \"grid-column-end\"],\n \"grid-area\": [\"grid-row-start\", \"grid-column-start\", \"grid-row-end\", \"grid-column-end\"],\n \"grid-gap\": [\"grid-row-gap\", \"grid-column-gap\"],\n // CSS Masking Module Level 1: https://www.w3.org/TR/css-masking/\n mask: [\"mask-image\", \"mask-mode\", \"mask-position\", \"mask-size\", \"mask-repeat\", \"mask-origin\", \"mask-clip\"],\n \"mask-border\": [\"mask-border-source\", \"mask-border-slice\", \"mask-border-width\", \"mask-border-outset\", \"mask-border-repeat\", \"mask-border-mode\"],\n // CSS Multi-column Layout Module: https://www.w3.org/TR/css3-multicol/\n columns: [\"column-width\", \"column-count\"],\n \"column-rule\": [\"column-rule-width\", \"column-rule-style\", \"column-rule-color\"],\n // CSS Scroll Snap Module Level 1: https://www.w3.org/TR/css-scroll-snap-1/\n \"scroll-padding\": [\"scroll-padding-top\", \"scroll-padding-right\", \"scroll-padding-bottom\", \"scroll-padding-left\"],\n \"scroll-padding-block\": [\"scroll-padding-block-start\", \"scroll-padding-block-end\"],\n \"scroll-padding-inline\": [\"scroll-padding-inline-start\", \"scroll-padding-inline-end\"],\n \"scroll-snap-margin\": [\"scroll-snap-margin-top\", \"scroll-snap-margin-right\", \"scroll-snap-margin-bottom\", \"scroll-snap-margin-left\"],\n \"scroll-snap-margin-block\": [\"scroll-snap-margin-block-start\", \"scroll-snap-margin-block-end\"],\n \"scroll-snap-margin-inline\": [\"scroll-snap-margin-inline-start\", \"scroll-snap-margin-inline-end\"],\n // CSS Speech Module: https://www.w3.org/TR/css3-speech/\n cue: [\"cue-before\", \"cue-after\"],\n pause: [\"pause-before\", \"pause-after\"],\n rest: [\"rest-before\", \"rest-after\"],\n // CSS Text Decoration Module Level 3: https://www.w3.org/TR/css-text-decor-3/\n \"text-decoration\": [\"text-decoration-line\", \"text-decoration-style\", \"text-decoration-color\"],\n \"text-emphasis\": [\"text-emphasis-style\", \"text-emphasis-color\"],\n // CSS Animations (WD): https://www.w3.org/TR/css3-animations\n animation: [\"animation-name\", \"animation-duration\", \"animation-timing-function\", \"animation-delay\", \"animation-iteration-count\", \"animation-direction\", \"animation-fill-mode\", \"animation-play-state\"],\n // CSS Transitions (WD): https://www.w3.org/TR/css3-transitions/\n transition: [\"transition-property\", \"transition-duration\", \"transition-timing-function\", \"transition-delay\"]\n};\n\nfunction validateNoMixedHand(style) {\n var hyphenatedProperties = Object.keys(style).reduce(function (acc, property) {\n acc[hyphenateStyleName(property)] = property;\n return acc;\n }, {});\n var mixed = [];\n\n for (var property in hyphenatedProperties) {\n if (property in shorthandMap) {\n for (var _iterator = shorthandMap[property], _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var _longhand = _ref;\n\n if (_longhand in hyphenatedProperties) {\n var long = hyphenatedProperties[_longhand];\n var short = hyphenatedProperties[property];\n mixed.push({\n shorthand: {\n property: short,\n value: style[short]\n },\n longhand: {\n property: long,\n value: style[long]\n }\n });\n }\n }\n }\n }\n\n return mixed;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction injectStylePrefixed(styleCache, styles, media, pseudo) {\n var cache = styleCache.getCache(media);\n var classString = \"\";\n\n for (var originalKey in styles) {\n var originalVal = styles[originalKey];\n\n if (originalVal === void 0 || originalVal === null) {\n continue;\n }\n\n if (_typeof(originalVal) !== \"object\") {\n // Non-null and non-undefined primitive value\n if (process.env.NODE_ENV !== \"production\") {\n validateValueType(originalVal, originalKey);\n }\n\n var propValPair = hyphenateStyleName(originalKey) + \":\" + originalVal;\n var key = \"\" + pseudo + propValPair;\n var cachedId = cache.cache[key];\n\n if (cachedId !== void 0) {\n // cache hit\n classString += \" \" + cachedId;\n continue;\n } else {\n var _prefix; // cache miss\n\n\n var block = \"\";\n var prefixed = prefix((_prefix = {}, _prefix[originalKey] = originalVal, _prefix));\n\n for (var prefixedKey in prefixed) {\n var prefixedVal = prefixed[prefixedKey];\n\n var prefixedValType = _typeof(prefixedVal);\n\n if (prefixedValType === \"string\" || prefixedValType === \"number\") {\n var prefixedPair = hyphenateStyleName(prefixedKey) + \":\" + prefixedVal;\n\n if (prefixedPair !== propValPair) {\n block += prefixedPair + \";\";\n }\n } else if (Array.isArray(prefixedVal)) {\n var hyphenated = hyphenateStyleName(prefixedKey);\n\n for (var i = 0; i < prefixedVal.length; i++) {\n var _prefixedPair = hyphenated + \":\" + prefixedVal[i];\n\n if (_prefixedPair !== propValPair) {\n block += _prefixedPair + \";\";\n }\n }\n }\n }\n\n block += propValPair; // ensure original prop/val is last (for hydration)\n\n var id = cache.addValue(key, {\n pseudo: pseudo,\n block: block\n });\n classString += \" \" + id;\n }\n } else {\n // Non-null object value\n if (originalKey[0] === \":\") {\n classString += \" \" + injectStylePrefixed(styleCache, originalVal, media, pseudo + originalKey);\n } else if (originalKey.substring(0, 6) === \"@media\") {\n classString += \" \" + injectStylePrefixed(styleCache, originalVal, originalKey.substr(7), pseudo);\n }\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n var conflicts = validateNoMixedHand(styles);\n\n if (conflicts.length) {\n conflicts.forEach(function (_ref) {\n var _JSON$stringify, _JSON$stringify2;\n\n var shorthand = _ref.shorthand,\n longhand = _ref.longhand;\n var short = JSON.stringify((_JSON$stringify = {}, _JSON$stringify[shorthand.property] = shorthand.value, _JSON$stringify));\n var long = JSON.stringify((_JSON$stringify2 = {}, _JSON$stringify2[longhand.property] = longhand.value, _JSON$stringify2)); // eslint-disable-next-line no-console\n\n console.warn(\"Styles `\" + short + \"` and `\" + long + \"` in object yielding class \\\"\" + classString.slice(1) + \"\\\" may result in unexpected behavior. Mixing shorthand and longhand properties within the same style object is unsupported with atomic rendering.\");\n });\n }\n } // remove leading space\n\n\n return classString.slice(1);\n}\n\nfunction validateValueType(value, key) {\n if (value === null || Array.isArray(value) || typeof value !== \"number\" && typeof value !== \"string\") {\n throw new Error(\"Unsupported style value: \" + JSON.stringify(value) + \" used in property \" + JSON.stringify(key));\n }\n}\n\nfunction _typeof$1(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$1 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$1 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$1(obj);\n}\n/* eslint-disable no-console */\n\n\nvar validAnimationState = /^(from|to|\\+?(\\d*\\.)?\\d+%)(\\s*,\\s*(from|to|\\+?(\\d*\\.)?\\d+%))*$/;\n\nfunction validateKeyframesObject(keyframes) {\n var valid = true;\n\n for (var animationState in keyframes) {\n var value = keyframes[animationState];\n\n if (!validAnimationState.test(animationState)) {\n valid = false;\n console.warn(\"Warning: property \\\"\" + animationState + \"\\\" in keyframes object \" + JSON.stringify(keyframes) + \" is not a valid. Must be \\\"from\\\", \\\"to\\\", or a percentage.\");\n }\n\n if (_typeof$1(value) !== \"object\") {\n valid = false;\n console.warn(\"Warning: value for \\\"\" + animationState + \"\\\" property in keyframes object \" + JSON.stringify(keyframes) + \" must be an object. Instead it was a \" + _typeof$1(value) + \".\");\n }\n\n if (!valid) {\n console.warn(\"Warning: object used as value for \\\"animationName\\\" style is invalid:\", keyframes);\n }\n }\n}\n\nfunction atomicSelector(id, pseudo) {\n var selector = \".\" + id;\n\n if (pseudo) {\n selector += pseudo;\n }\n\n return selector;\n}\n\nfunction keyframesToBlock(keyframes) {\n if (process.env.NODE_ENV !== \"production\") {\n validateKeyframesObject(keyframes);\n }\n\n if (process.env.NODE_ENV !== \"production\" && typeof Object.getPrototypeOf(keyframes) !== \"undefined\") {\n if (Object.getPrototypeOf(keyframes) !== Object.getPrototypeOf({})) {\n // eslint-disable-next-line no-console\n console.warn(\"Only plain objects should be used as animation values. Unexpectedly recieved:\", keyframes);\n }\n }\n\n var result = \"\";\n\n for (var animationState in keyframes) {\n result += animationState + \"{\" + declarationsToBlock(keyframes[animationState]) + \"}\";\n }\n\n return result;\n}\n\nfunction declarationsToBlock(style) {\n var css = \"\";\n\n for (var prop in style) {\n var val = style[prop];\n\n if (typeof val === \"string\" || typeof val === \"number\") {\n css += hyphenateStyleName(prop) + \":\" + val + \";\";\n }\n } // trim trailing semicolon\n\n\n return css.slice(0, -1);\n}\n\nfunction keyframesBlockToRule(id, block) {\n return \"@keyframes \" + id + \"{\" + block + \"}\";\n}\n\nfunction fontFaceBlockToRule(id, block) {\n return \"@font-face{font-family:\" + id + \";\" + block + \"}\";\n}\n\nfunction styleBlockToRule(selector, block) {\n return selector + \"{\" + block + \"}\";\n}\n/* eslint-env browser */\n\n\nvar insertRuleIntoDevtools = function insertRuleIntoDevtools(selector, block) {\n // start after the . combinator and cut at the first : if there is one to cut out the pseudo classes\n var key = selector.substring(1, selector.indexOf(\":\") !== -1 ? selector.indexOf(\":\") : selector.length);\n var styles = {}; // split the declaration to catch vendor prefixing\n\n for (var _iterator = block.split(\";\"), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var _decl = _ref;\n if (_decl.trim() !== \"\" && !window.__STYLETRON_DEVTOOLS__.atomicMap[key]) styles[_decl.substring(0, _decl.indexOf(\":\"))] = _decl.substring(_decl.indexOf(\":\") + 1, _decl.length);\n }\n\n window.__STYLETRON_DEVTOOLS__.atomicMap[key] = styles;\n};\n\nvar hydrateDevtoolsRule = function hydrateDevtoolsRule(cssString) {\n var id = cssString.substring(0, 3);\n var block = cssString.substring(4, cssString.length - 1);\n insertRuleIntoDevtools(id, block);\n};\n/* eslint-env browser */\n\n\nvar STYLES_HYDRATOR = /\\.([^{:]+)(:[^{]+)?{(?:[^}]*;)?([^}]*?)}/g;\nvar KEYFRAMES_HYRDATOR = /@keyframes ([^{]+){((?:(?:from|to|(?:\\d+\\.?\\d*%))\\{(?:[^}])*})*)}/g;\nvar FONT_FACE_HYDRATOR = /@font-face\\{font-family:([^;]+);([^}]*)\\}/g;\n\nfunction hydrateStyles(cache, hydrator, css) {\n var match;\n\n while (match = hydrator.exec(css)) {\n var _match = match,\n id = _match[1],\n pseudo = _match[2],\n key = _match[3];\n\n if (true && process.env.NODE_ENV !== \"production\" && window.__STYLETRON_DEVTOOLS__) {\n hydrateDevtoolsRule(match[0]);\n }\n\n var fullKey = pseudo ? \"\" + pseudo + key : key;\n cache.cache[fullKey] = id; // set cache without triggering side effects\n\n cache.idGenerator.increment(); // increment id\n }\n}\n\nfunction hydrate(cache, hydrator, css) {\n var match;\n\n while (match = hydrator.exec(css)) {\n var _match2 = match,\n id = _match2[1],\n key = _match2[2];\n\n if (true && process.env.NODE_ENV !== \"production\" && window.__STYLETRON_DEVTOOLS__) {\n hydrateDevtoolsRule(match[0]);\n }\n\n cache.cache[key] = id; // set cache without triggering side effects\n\n cache.idGenerator.increment(); // increment id\n }\n}\n\nvar StyletronClient = /*#__PURE__*/function () {\n function StyletronClient(opts) {\n var _this = this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n this.styleElements = {};\n var styleIdGenerator = new SequentialIDGenerator(opts.prefix);\n\n var onNewStyle = function onNewStyle(cache, id, value) {\n var pseudo = value.pseudo,\n block = value.block;\n var sheet = _this.styleElements[cache.key].sheet;\n var selector = atomicSelector(id, pseudo);\n var rule = styleBlockToRule(selector, block);\n\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n\n if (true && process.env.NODE_ENV !== \"production\" && window.__STYLETRON_DEVTOOLS__) {\n insertRuleIntoDevtools(selector, block);\n }\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inject CSS: \\\"\" + rule + \"\\\". Perhaps this has invalid or un-prefixed properties?\");\n }\n }\n }; // Setup style cache\n\n\n this.styleCache = new MultiCache(styleIdGenerator, function (media, _cache, insertBeforeMedia) {\n var styleElement = document.createElement(\"style\");\n styleElement.media = media;\n\n if (insertBeforeMedia === void 0) {\n _this.container.appendChild(styleElement);\n } else {\n var insertBeforeIndex = findSheetIndexWithMedia(_this.container.children, insertBeforeMedia);\n\n _this.container.insertBefore(styleElement, _this.container.children[insertBeforeIndex]);\n }\n\n _this.styleElements[media] = styleElement;\n }, onNewStyle);\n this.keyframesCache = new Cache(new SequentialIDGenerator(opts.prefix), function (cache, id, value) {\n _this.styleCache.getCache(\"\");\n\n var sheet = _this.styleElements[\"\"].sheet;\n var rule = keyframesBlockToRule(id, keyframesToBlock(value));\n\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inject CSS: \\\"\" + rule + \"\\\". Perhaps this has invalid or un-prefixed properties?\");\n }\n }\n });\n this.fontFaceCache = new Cache(new SequentialIDGenerator(opts.prefix), function (cache, id, value) {\n _this.styleCache.getCache(\"\");\n\n var sheet = _this.styleElements[\"\"].sheet;\n var rule = fontFaceBlockToRule(id, declarationsToBlock(value));\n\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inject CSS: \\\"\" + rule + \"\\\". Perhaps this has invalid or un-prefixed properties?\");\n }\n }\n });\n\n if (opts.container) {\n this.container = opts.container;\n } // Hydrate\n\n\n if (opts.hydrate && opts.hydrate.length > 0) {\n // infer container from parent element\n if (!this.container) {\n var parentElement = opts.hydrate[0].parentElement;\n\n if (parentElement !== null && parentElement !== void 0) {\n this.container = parentElement;\n }\n }\n\n for (var i = 0; i < opts.hydrate.length; i++) {\n var element = opts.hydrate[i];\n var hydrateType = element.getAttribute(\"data-hydrate\");\n\n if (hydrateType === \"font-face\") {\n hydrate(this.fontFaceCache, FONT_FACE_HYDRATOR, element.textContent);\n continue;\n }\n\n if (hydrateType === \"keyframes\") {\n hydrate(this.keyframesCache, KEYFRAMES_HYRDATOR, element.textContent);\n continue;\n }\n\n var key = element.media ? element.media : \"\";\n this.styleElements[key] = element;\n var cache = new Cache(styleIdGenerator, onNewStyle);\n cache.key = key;\n hydrateStyles(cache, STYLES_HYDRATOR, element.textContent);\n this.styleCache.sortedCacheKeys.push(key);\n this.styleCache.caches[key] = cache;\n }\n }\n\n if (!this.container) {\n if (document.head === null) {\n throw new Error(\"No container provided and `document.head` was null\");\n }\n\n this.container = document.head;\n }\n }\n\n var _proto = StyletronClient.prototype;\n\n _proto.renderStyle = function renderStyle(style) {\n return injectStylePrefixed(this.styleCache, style, \"\", \"\");\n };\n\n _proto.renderFontFace = function renderFontFace(fontFace) {\n var key = declarationsToBlock(fontFace);\n return this.fontFaceCache.addValue(key, fontFace);\n };\n\n _proto.renderKeyframes = function renderKeyframes(keyframes) {\n var key = keyframesToBlock(keyframes);\n return this.keyframesCache.addValue(key, keyframes);\n };\n\n return StyletronClient;\n}();\n\nfunction findSheetIndexWithMedia(children, media) {\n var index = 0;\n\n for (; index < children.length; index++) {\n var child = children[index];\n\n if (child.tagName === \"STYLE\" && child.media === media) {\n return index;\n }\n }\n\n return -1;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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\nvar StyletronServer = /*#__PURE__*/function () {\n function StyletronServer(opts) {\n var _this = this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n this.styleRules = {\n \"\": \"\"\n };\n this.styleCache = new MultiCache(new SequentialIDGenerator(opts.prefix), function (media) {\n _this.styleRules[media] = \"\";\n }, function (cache, id, value) {\n var pseudo = value.pseudo,\n block = value.block;\n _this.styleRules[cache.key] += styleBlockToRule(atomicSelector(id, pseudo), block);\n });\n this.fontFaceRules = \"\";\n this.fontFaceCache = new Cache(new SequentialIDGenerator(opts.prefix), function (cache, id, value) {\n _this.fontFaceRules += fontFaceBlockToRule(id, declarationsToBlock(value));\n });\n this.keyframesRules = \"\";\n this.keyframesCache = new Cache(new SequentialIDGenerator(opts.prefix), function (cache, id, value) {\n _this.keyframesRules += keyframesBlockToRule(id, keyframesToBlock(value));\n });\n }\n\n var _proto = StyletronServer.prototype;\n\n _proto.renderStyle = function renderStyle(style) {\n return injectStylePrefixed(this.styleCache, style, \"\", \"\");\n };\n\n _proto.renderFontFace = function renderFontFace(fontFace) {\n var key = JSON.stringify(fontFace);\n return this.fontFaceCache.addValue(key, fontFace);\n };\n\n _proto.renderKeyframes = function renderKeyframes(keyframes) {\n var key = JSON.stringify(keyframes);\n return this.keyframesCache.addValue(key, keyframes);\n };\n\n _proto.getStylesheets = function getStylesheets() {\n return [].concat(this.keyframesRules.length ? [{\n css: this.keyframesRules,\n attrs: {\n \"data-hydrate\": \"keyframes\"\n }\n }] : [], this.fontFaceRules.length ? [{\n css: this.fontFaceRules,\n attrs: {\n \"data-hydrate\": \"font-face\"\n }\n }] : [], sheetify(this.styleRules, this.styleCache.getSortedCacheKeys()));\n };\n\n _proto.getStylesheetsHtml = function getStylesheetsHtml(className) {\n if (className === void 0) {\n className = \"_styletron_hydrate_\";\n }\n\n return generateHtmlString(this.getStylesheets(), className);\n };\n\n _proto.getCss = function getCss() {\n return this.keyframesRules + this.fontFaceRules + stringify(this.styleRules, this.styleCache.getSortedCacheKeys());\n };\n\n return StyletronServer;\n}();\n\nfunction generateHtmlString(sheets, className) {\n var html = \"\";\n\n for (var i = 0; i < sheets.length; i++) {\n var sheet = sheets[i];\n\n var _sheet$attrs = sheet.attrs,\n originalClassName = _sheet$attrs.class,\n rest = _objectWithoutProperties(_sheet$attrs, [\"class\"]);\n\n var attrs = Object.assign({\n class: originalClassName ? className + \" \" + originalClassName : className\n }, rest);\n html += \"\" + sheet.css + \"\";\n }\n\n return html;\n}\n\nfunction attrsToString(attrs) {\n var result = \"\";\n\n for (var attr in attrs) {\n var value = attrs[attr];\n\n if (value === true) {\n result += \" \" + attr;\n } else if (value !== false) {\n result += \" \" + attr + \"=\\\"\" + value + \"\\\"\";\n }\n }\n\n return result;\n}\n\nfunction stringify(styleRules, sortedCacheKeys) {\n var result = \"\";\n sortedCacheKeys.forEach(function (cacheKey) {\n var rules = styleRules[cacheKey];\n\n if (cacheKey !== \"\") {\n result += \"@media \" + cacheKey + \"{\" + rules + \"}\";\n } else {\n result += rules;\n }\n });\n return result;\n}\n\nfunction sheetify(styleRules, sortedCacheKeys) {\n if (sortedCacheKeys.length === 0) {\n return [{\n css: \"\",\n attrs: {}\n }];\n }\n\n var sheets = [];\n sortedCacheKeys.forEach(function (cacheKey) {\n // omit media (cacheKey) attribute if empty\n var attrs = cacheKey === \"\" ? {} : {\n media: cacheKey\n };\n sheets.push({\n css: styleRules[cacheKey],\n attrs: attrs\n });\n });\n return sheets;\n}\n\nexport { StyletronClient as Client, StyletronServer as Server };","import { Component, createContext, createElement, forwardRef, useContext, useRef } from 'react';\nimport { driver, getInitialStyle } from 'styletron-standard';\n/* eslint-env browser */\n\n/* global module */\n\nfunction addDebugMetadata(instance, stackIndex) {\n var _ref = new Error(\"stacktrace source\"),\n stack = _ref.stack,\n stacktrace = _ref.stacktrace,\n message = _ref.message;\n\n instance.debug = {\n stackInfo: {\n stack: stack,\n stacktrace: stacktrace,\n message: message\n },\n stackIndex: stackIndex\n };\n} // DEVTOOLS SETUP\n\n\nvar setupDevtoolsExtension = function setupDevtoolsExtension() {\n var atomicMap = {};\n var extensionsMap = new Map();\n var stylesMap = new Map();\n\n var getStyles = function getStyles(className) {\n var styles = {};\n\n if (typeof className !== \"string\") {\n return styles;\n }\n\n if (stylesMap.has(className)) {\n styles.styles = stylesMap.get(className);\n var classList = className.split(\" \");\n\n if (classList.length) {\n var classes = {};\n classList.forEach(function (singleClassName) {\n classes[singleClassName] = atomicMap[singleClassName];\n });\n styles.classes = classes;\n }\n\n if (extensionsMap.has(className)) {\n var extension = extensionsMap.get(className);\n styles.extends = extension;\n }\n\n return styles;\n }\n };\n\n window.__STYLETRON_DEVTOOLS__ = {\n atomicMap: atomicMap,\n extensionsMap: extensionsMap,\n stylesMap: stylesMap,\n getStyles: getStyles\n };\n};\n\nvar BrowserDebugEngine = /*#__PURE__*/function () {\n function BrowserDebugEngine(worker) {\n if (!worker) {\n var workerBlob = new Blob([\"importScripts(\\\"https://unpkg.com/css-to-js-sourcemap-worker@2.0.5/worker.js\\\")\"], {\n type: \"application/javascript\"\n });\n worker = new Worker(URL.createObjectURL(workerBlob));\n worker.postMessage({\n id: \"init_wasm\",\n url: \"https://unpkg.com/css-to-js-sourcemap-worker@2.0.5/mappings.wasm\"\n });\n worker.postMessage({\n id: \"set_render_interval\",\n interval: 120\n });\n\n if (module.hot) {\n module.hot.addStatusHandler(function (status) {\n if (status === \"dispose\") {\n worker.postMessage({\n id: \"invalidate\"\n });\n }\n });\n }\n }\n\n this.worker = worker;\n this.counter = 0;\n\n this.worker.onmessage = function (msg) {\n var _msg$data = msg.data,\n id = _msg$data.id,\n css = _msg$data.css;\n\n if (id === \"render_css\" && css) {\n var style = document.createElement(\"style\");\n style.appendChild(document.createTextNode(css));\n document.head.appendChild(style);\n }\n };\n }\n\n var _proto = BrowserDebugEngine.prototype;\n\n _proto.debug = function debug(_ref2) {\n var stackIndex = _ref2.stackIndex,\n stackInfo = _ref2.stackInfo;\n var className = \"__debug-\" + this.counter++;\n this.worker.postMessage({\n id: \"add_mapped_class\",\n className: className,\n stackInfo: stackInfo,\n stackIndex: stackIndex\n });\n return className;\n };\n\n return BrowserDebugEngine;\n}();\n\nvar DebugEngine = BrowserDebugEngine;\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 subClass.__proto__ = superClass;\n}\n/* eslint-env browser */\n\n/* eslint-disable no-unused-vars, no-redeclare, no-shadow */\n\n\nvar noopEngine = {\n renderStyle: function renderStyle() {\n return \"\";\n },\n renderKeyframes: function renderKeyframes() {\n return \"\";\n },\n renderFontFace: function renderFontFace() {\n return \"\";\n }\n};\nvar StyletronContext = createContext(noopEngine);\nvar HydrationContext = createContext(false);\nvar DebugEngineContext = createContext();\nvar ThemeContext = createContext();\n\nvar DevProvider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DevProvider, _React$Component);\n\n function DevProvider(props) {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.state = {\n hydrating: Boolean(props.debugAfterHydration)\n };\n return _this;\n }\n\n var _proto = DevProvider.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n {\n if (this.state.hydrating === true) {\n this.setState({\n hydrating: false\n });\n }\n }\n };\n\n _proto.render = function render() {\n return createElement(StyletronContext.Provider, {\n value: this.props.value\n }, createElement(DebugEngineContext.Provider, {\n value: this.props.debug\n }, createElement(HydrationContext.Provider, {\n value: this.state.hydrating\n }, this.props.children)));\n };\n\n return DevProvider;\n}(Component);\n\nvar Provider = true && process.env.NODE_ENV !== \"production\" ? DevProvider : StyletronContext.Provider;\n\nif (true && process.env.NODE_ENV !== \"production\" && !window.__STYLETRON_DEVTOOLS__) {\n setupDevtoolsExtension();\n}\n\nfunction checkNoopEngine(engine) {\n // if no engine provided, we default to no-op, handy for tests\n // however, print a warning in other envs\n if (process.env.NODE_ENV !== \"test\") {\n engine === noopEngine && // eslint-disable-next-line no-console\n console.warn(process.env.NODE_ENV !== \"production\" ? \"\\nStyletron has been switched to a no-op (test) mode.\\n\\nA Styletron styled component was rendered, but no Styletron engine instance was provided in React context.\\n\\nDid you forget to provide a Styletron engine instance to React context via using the Styletron provider component?\\n\\nNote: Providers and Consumers must come from the exact same React.createContext call to work.\\nIf your app has multiple instances of the \\\"styletron-react\\\" package in your node_module tree,\\nyour Provider may be coming from a different React.createContext call, which means the styled components\\nwill not recieve the provided engine instance. This scenario can arise, for example, when using \\\"npm link\\\".\\n\" : \"Styletron Provider is not set up. Defaulting to no-op.\");\n }\n}\n\nfunction useStyletron() {\n var styletronEngine = useContext(StyletronContext);\n var debugEngine = useContext(DebugEngineContext);\n var hydrating = useContext(HydrationContext);\n checkNoopEngine(styletronEngine);\n var debugClassName = useRef(\"\");\n var prevDebugClassNameDeps = useRef([]);\n return [function css(style) {\n var className = driver(style, styletronEngine);\n\n if (!(true && process.env.NODE_ENV !== \"production\")) {\n return className;\n }\n\n var _ref = new Error(\"stacktrace source\"),\n stack = _ref.stack,\n message = _ref.message;\n\n var nextDeps = [debugEngine, hydrating];\n\n if (prevDebugClassNameDeps.current[0] !== nextDeps[0] || prevDebugClassNameDeps.current[1] !== nextDeps[1]) {\n if (debugEngine && !hydrating) {\n debugClassName.current = debugEngine.debug({\n stackInfo: {\n stack: stack,\n message: message\n },\n stackIndex: 1\n });\n }\n\n prevDebugClassNameDeps.current = nextDeps;\n }\n\n if (debugClassName.current) {\n return debugClassName.current + \" \" + className;\n }\n\n return className;\n }];\n}\n\nfunction createStyled(_ref2) {\n var getInitialStyle$$1 = _ref2.getInitialStyle,\n driver$$1 = _ref2.driver,\n wrapper = _ref2.wrapper;\n\n function styled(base, styleArg) {\n if (process.env.NODE_ENV !== \"production\") {\n if (base.__STYLETRON__) {\n /* eslint-disable no-console */\n console.warn(\"It appears you are passing a styled component into `styled`.\");\n console.warn(\"For composition with existing styled components, use `withStyle` or `withTransform` instead.\");\n /* eslint-enable no-console */\n }\n }\n\n var baseStyletron = {\n reducers: [],\n base: base,\n driver: driver$$1,\n getInitialStyle: getInitialStyle$$1,\n wrapper: wrapper\n };\n\n if (true && process.env.NODE_ENV !== \"production\") {\n addDebugMetadata(baseStyletron, 2);\n }\n\n return createStyledElementComponent(autoComposeShallow(baseStyletron, styleArg));\n }\n\n return styled;\n}\n\nvar styled = createStyled({\n getInitialStyle: getInitialStyle,\n driver: driver,\n wrapper: function wrapper(Component$$1) {\n return Component$$1;\n }\n});\n\nfunction withTransform(component, transformer) {\n var styletron = component.__STYLETRON__;\n\n if (true && process.env.NODE_ENV !== \"production\") {\n addDebugMetadata(styletron, 2);\n }\n\n return createStyledElementComponent(composeDynamic(styletron, transformer));\n}\n\nvar withStyle = withStyleDeep;\n\nfunction withStyleDeep(component, styleArg) {\n var styletron = component.__STYLETRON__;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!styletron) {\n /* eslint-disable no-console */\n console.warn(\"The first parameter to `withStyle` must be a styled component (without extra wrappers).\");\n /* eslint-enable no-console */\n }\n }\n\n if (true && process.env.NODE_ENV !== \"production\") {\n addDebugMetadata(styletron, 2);\n return createStyledElementComponent(addExtension(autoComposeDeep(styletron, styleArg), component, styleArg));\n } else {\n return createStyledElementComponent(autoComposeDeep(styletron, styleArg));\n }\n}\n\nfunction withWrapper(component, wrapper) {\n var styletron = component.__STYLETRON__;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!styletron) {\n /* eslint-disable no-console */\n console.warn(\"The first parameter to `withWrapper` must be a styled component (without extra wrappers).\");\n /* eslint-enable no-console */\n }\n }\n\n var composed = {\n getInitialStyle: styletron.getInitialStyle,\n base: styletron.base,\n driver: styletron.driver,\n wrapper: wrapper,\n reducers: styletron.reducers\n };\n\n if (true && process.env.NODE_ENV !== \"production\") {\n addDebugMetadata(composed, 2);\n }\n\n return createStyledElementComponent(composed);\n}\n\nfunction autoComposeShallow(styletron, styleArg) {\n if (typeof styleArg === \"function\") {\n return dynamicComposeShallow(styletron, styleArg);\n }\n\n return staticComposeShallow(styletron, styleArg);\n}\n\nfunction addExtension(composed, component, styleArg) {\n return Object.assign({}, composed, {\n ext: {\n with: styleArg,\n name: component.displayName,\n base: component.__STYLETRON__.base,\n getInitialStyle: component.__STYLETRON__.reducers.length ? component.__STYLETRON__.reducers[0].reducer : component.__STYLETRON__.getInitialStyle\n }\n });\n}\n\nfunction autoComposeDeep(styletron, styleArg) {\n if (typeof styleArg === \"function\") {\n return dynamicComposeDeep(styletron, styleArg);\n }\n\n return staticComposeDeep(styletron, styleArg);\n}\n\nfunction staticComposeShallow(styletron, style) {\n return composeStatic(styletron, createShallowMergeReducer(style));\n}\n\nfunction staticComposeDeep(styletron, style) {\n return composeStatic(styletron, createDeepMergeReducer(style));\n}\n\nfunction dynamicComposeShallow(styletron, styleFn) {\n return composeDynamic(styletron, function (style, props) {\n return shallowMerge(style, styleFn(props));\n });\n}\n\nfunction dynamicComposeDeep(styletron, styleFn) {\n return composeDynamic(styletron, function (style, props) {\n return deepMerge(style, styleFn(props));\n });\n}\n\nfunction createShallowMergeReducer(style) {\n return {\n reducer: function reducer(inputStyle) {\n return shallowMerge(inputStyle, style);\n },\n assignmentCommutative: true,\n factory: createShallowMergeReducer,\n style: style\n };\n}\n\nfunction createDeepMergeReducer(style) {\n return {\n reducer: function reducer(inputStyle) {\n return deepMerge(inputStyle, style);\n },\n assignmentCommutative: true,\n factory: createDeepMergeReducer,\n style: style\n };\n}\n\nfunction composeStatic(styletron, reducerContainer) {\n if (styletron.reducers.length === 0) {\n var style = reducerContainer.reducer(styletron.getInitialStyle());\n var result = {\n reducers: styletron.reducers,\n base: styletron.base,\n driver: styletron.driver,\n wrapper: styletron.wrapper,\n getInitialStyle: function getInitialStyle$$1() {\n return style;\n }\n };\n\n if (true && process.env.NODE_ENV !== \"production\") {\n result.debug = styletron.debug;\n }\n\n return result;\n } else {\n var last = styletron.reducers[0];\n\n if (last.assignmentCommutative === true && reducerContainer.assignmentCommutative === true) {\n var composed = reducerContainer.reducer(last.style);\n var _result = {\n getInitialStyle: styletron.getInitialStyle,\n base: styletron.base,\n driver: styletron.driver,\n wrapper: styletron.wrapper,\n reducers: [last.factory(composed)].concat(styletron.reducers.slice(1))\n };\n\n if (true && process.env.NODE_ENV !== \"production\") {\n _result.debug = styletron.debug;\n }\n\n return _result;\n }\n\n return composeDynamic(styletron, reducerContainer.reducer);\n }\n}\n\nfunction composeDynamic(styletron, reducer) {\n var composed = {\n getInitialStyle: styletron.getInitialStyle,\n base: styletron.base,\n driver: styletron.driver,\n wrapper: styletron.wrapper,\n reducers: [{\n assignmentCommutative: false,\n reducer: reducer\n }].concat(styletron.reducers)\n };\n\n if (true && process.env.NODE_ENV !== \"production\") {\n composed.debug = styletron.debug;\n }\n\n return composed;\n}\n\nfunction createStyledElementComponent(styletron) {\n var reducers = styletron.reducers,\n base = styletron.base,\n driver$$1 = styletron.driver,\n wrapper = styletron.wrapper,\n getInitialStyle$$1 = styletron.getInitialStyle,\n ext = styletron.ext;\n\n if (true && process.env.NODE_ENV !== \"production\") {\n var debugStackInfo, debugStackIndex;\n\n if (styletron.debug) {\n debugStackInfo = styletron.debug.stackInfo;\n debugStackIndex = styletron.debug.stackIndex;\n }\n }\n\n if (true && process.env.NODE_ENV !== \"production\") {\n var debugClassName;\n }\n\n var StyledElement = forwardRef(function (props, ref) {\n var styletron = useContext(StyletronContext);\n var debugEngine = useContext(DebugEngineContext);\n var hydrating = useContext(HydrationContext);\n checkNoopEngine(styletron);\n var elementProps = omitPrefixedKeys(props);\n var style = resolveStyle(getInitialStyle$$1, reducers, props);\n\n if (props.$style) {\n if (typeof props.$style === \"function\") {\n style = deepMerge(style, props.$style(props));\n } else {\n style = deepMerge(style, props.$style);\n }\n }\n\n var styleClassString = driver$$1(style, styletron);\n var Element = props.$as ? props.$as : base;\n elementProps.className = props.className ? props.className + \" \" + styleClassString : styleClassString;\n\n if (true && process.env.NODE_ENV !== \"production\" && debugEngine && !hydrating) {\n if (!debugClassName) {\n debugClassName = debugEngine.debug({\n stackInfo: debugStackInfo,\n stackIndex: debugStackIndex\n });\n }\n\n var joined = debugClassName + \" \" + elementProps.className;\n elementProps.className = joined;\n }\n\n if (true && process.env.NODE_ENV !== \"production\" && window.__STYLETRON_DEVTOOLS__) {\n window.__STYLETRON_DEVTOOLS__.stylesMap.set(elementProps.className, style);\n\n if (ext) {\n window.__STYLETRON_DEVTOOLS__.extensionsMap.set(elementProps.className, {\n base: ext.base,\n displayName: ext.name,\n initialStyles: ext.getInitialStyle({}, props),\n styleOverrides: typeof ext.with === \"function\" ? ext.with(props) : ext.with\n });\n }\n }\n\n if (props.$ref) {\n // eslint-disable-next-line no-console\n console.warn(\"The prop `$ref` has been deprecated. Use `ref` instead. Refs are now forwarded with React.forwardRef.\");\n }\n\n return createElement(Element, _extends({}, elementProps, {\n ref: ref || props.$ref\n }));\n });\n var Wrapped = wrapper(StyledElement);\n Wrapped.__STYLETRON__ = {\n base: base,\n reducers: reducers,\n driver: driver$$1,\n wrapper: wrapper,\n getInitialStyle: getInitialStyle$$1\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n var displayName;\n\n if (typeof base === \"string\") {\n displayName = base;\n } else if (base.displayName) {\n displayName = base.displayName;\n } else if (base.name) {\n displayName = base.name;\n } else {\n displayName = \"Unknown\";\n }\n\n Wrapped.displayName = \"Styled(\" + displayName + \")\";\n }\n\n return Wrapped;\n} // Utility functions\n\n\nfunction resolveStyle(getInitialStyle$$1, reducers, props) {\n var result = getInitialStyle$$1();\n var i = reducers.length;\n\n while (i--) {\n // Cast to allow passing unused props param in case of static reducer\n var reducer = reducers[i].reducer;\n result = reducer(result, props);\n }\n\n return result;\n}\n\nfunction isObject(x) {\n return _typeof(x) === \"object\" && x !== null;\n}\n\nfunction omitPrefixedKeys(source) {\n var result = {};\n\n for (var key in source) {\n if (key[0] !== \"$\") {\n result[key] = source[key];\n }\n }\n\n return result;\n}\n\nfunction deepMerge(a, b) {\n var result = assign({}, a);\n\n for (var key in b) {\n var val = b[key];\n\n if (isObject(val) && isObject(a[key])) {\n result[key] = deepMerge(a[key], val);\n } else {\n result[key] = val;\n }\n }\n\n return result;\n}\n\nfunction shallowMerge(a, b) {\n return assign(assign({}, a), b);\n}\n\nfunction assign(target, source) {\n for (var key in source) {\n target[key] = source[key];\n }\n\n return target;\n}\n\nexport { DebugEngine, Provider, useStyletron, createStyled, styled, withTransform, withStyle, withStyleDeep, withWrapper, autoComposeShallow, autoComposeDeep, staticComposeShallow, staticComposeDeep, dynamicComposeShallow, dynamicComposeDeep, createShallowMergeReducer, createDeepMergeReducer, composeStatic, composeDynamic, createStyledElementComponent, resolveStyle };","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n} // Note: $Shape is needed to make polymorphic withStyle refinements work correctly\n// It seems functions satisfy this type without $Shape\n// See: https://github.com/facebook/flow/issues/6784\n//\n//\n//\n//\n//\n//\n\n\nfunction driver(style, styletron) {\n var tx = renderDeclarativeRules(style, styletron);\n return styletron.renderStyle(tx);\n}\n\nfunction getInitialStyle() {\n return {};\n}\n\nfunction renderDeclarativeRules(style, styletron) {\n for (var key in style) {\n var val = style[key];\n\n if (key === \"animationName\" && typeof val !== \"string\") {\n style.animationName = styletron.renderKeyframes(val);\n continue;\n }\n\n if (key === \"fontFamily\" && typeof val !== \"string\") {\n if (Array.isArray(val)) {\n var result = \"\";\n\n for (var _iterator = val, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var _font = _ref;\n\n if (_typeof(_font) === \"object\") {\n result += styletron.renderFontFace(_font) + \",\";\n } else if (typeof _font === \"string\") {\n result += _font + \",\";\n }\n }\n\n style.fontFamily = result.slice(0, -1);\n continue;\n } else if (val === void 0) {\n continue;\n } else {\n style.fontFamily = styletron.renderFontFace(val);\n continue;\n }\n }\n\n if (_typeof(val) === \"object\" && val !== null) {\n renderDeclarativeRules(val, styletron);\n }\n }\n\n return style;\n}\n\nexport { driver, getInitialStyle, renderDeclarativeRules };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n cb(entry.isIntersecting || entry.intersectionRatio > 0);\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.abortPrefetch = null;\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname + window.location.search; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname + this.props._location.search;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var parsed = (0, _parsePath.parsePath)(rewrittenPath);\n var newPathName = parsed.pathname + parsed.search; // Prefetch is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n return ___loader.enqueue(newPathName);\n }\n\n return undefined;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n\n if (this.abortPrefetch) {\n this.abortPrefetch.abort();\n }\n\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && Object.prototype.hasOwnProperty.call(this.props.innerRef, \"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function (inViewPort) {\n if (inViewPort) {\n _this2.abortPrefetch = _this2._prefetch();\n } else {\n if (_this2.abortPrefetch) {\n _this2.abortPrefetch.abort();\n }\n }\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n var parsed = (0, _parsePath.parsePath)(prefixedTo);\n\n ___loader.hovering(parsed.pathname + parsed.search);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-create-js\": () => import(\"./../../../src/pages/create.js\" /* webpackChunkName: \"component---src-pages-create-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-privacy-js\": () => import(\"./../../../src/pages/privacy.js\" /* webpackChunkName: \"component---src-pages-privacy-js\" */),\n \"component---src-pages-terms-js\": () => import(\"./../../../src/pages/terms.js\" /* webpackChunkName: \"component---src-pages-terms-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/static/images/icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"83bb413cf6bbe474990e86594a5f9a8d\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-styletron/gatsby-browser.js'),\n options: {\"plugins\":[],\"prefix\":\"_\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"G-W1RN9ZEWMS\"],\"gtagConfig\":{\"anonymize_ip\":true,\"cookie_name\":\"google-analytics-cookie\"},\"pluginConfig\":{\"head\":false,\"respectDNT\":true,\"exclude\":[\"/preview/**\",\"/do-not-track/me/too/\"],\"optinKey\":\"gtag_optin\"}},\n },{\n plugin: require('../node_modules/gatsby-plugin-mailgo/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-gatsby-cloud/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
    Loading (StaticQuery)
    }\n
    \n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
    \n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrateRoot ? ReactDOM.hydrateRoot : ReactDOM.hydrate\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.hydrateRoot) {\n renderer(rootElement, )\n } else {\n renderer(, rootElement)\n }\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport * as React from 'react';\nimport { UIDReset } from 'react-uid';\nimport { LayersManager } from '../layer/index.js';\nimport { ThemeProvider } from '../styles/index.js';\n\nvar BaseProvider = function BaseProvider(props) {\n var children = props.children,\n overrides = props.overrides,\n theme = props.theme,\n zIndex = props.zIndex;\n return /*#__PURE__*/React.createElement(LayersManager, {\n zIndex: zIndex,\n overrides: overrides\n }, /*#__PURE__*/React.createElement(UIDReset, {\n prefix: \"bui\"\n }, /*#__PURE__*/React.createElement(ThemeProvider, {\n theme: theme\n }, children)));\n};\n\nexport default BaseProvider;","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nexport var SIZE = {\n default: 'default',\n full: 'full',\n auto: 'auto'\n};\nexport var SIZE_DIMENSION = {\n default: '500px',\n full: '100%',\n auto: 'auto'\n};\nexport var CLOSE_SOURCE = {\n closeButton: 'closeButton',\n backdrop: 'backdrop',\n escape: 'escape'\n};\nexport var ANCHOR = {\n left: 'left',\n right: 'right',\n top: 'top',\n bottom: 'bottom'\n};","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n\nimport { styled } from '../styles/index.js';\nimport { SIZE, SIZE_DIMENSION, ANCHOR } from './constants.js';\n\nfunction getSizeStyles($size, $anchor) {\n var styles = {\n maxWidth: '100%',\n maxHeight: '100%',\n width: SIZE_DIMENSION.default,\n height: SIZE_DIMENSION.full\n };\n\n if ($anchor === ANCHOR.left || $anchor === ANCHOR.right) {\n // If the anchor is horizontal, set the width\n styles.height = SIZE_DIMENSION.full;\n\n if (SIZE[$size]) {\n styles.width = SIZE_DIMENSION[$size];\n } else if (typeof $size === 'string') {\n styles.width = $size;\n }\n } else {\n // If the anchor is vertical, set the height\n styles.width = SIZE_DIMENSION.full;\n\n if (SIZE[$size]) {\n styles.height = SIZE_DIMENSION[$size];\n } else if (typeof $size === 'string') {\n styles.height = $size;\n }\n }\n\n return styles;\n}\n\nfunction getAnchorStyles(props) {\n var $anchor = props.$anchor,\n $isVisible = props.$isVisible,\n $size = props.$size;\n var sizeStyles = getSizeStyles($size, $anchor);\n var left = ANCHOR.left,\n right = ANCHOR.right,\n top = ANCHOR.top,\n bottom = ANCHOR.bottom;\n\n switch ($anchor) {\n case right:\n {\n return _objectSpread({\n transform: $isVisible ? 'translateX(0)' : \"translateX(\".concat(sizeStyles.width, \")\"),\n right: $isVisible ? 0 : \"-\".concat(sizeStyles.width),\n top: 0\n }, sizeStyles);\n }\n\n case left:\n {\n return _objectSpread({\n transform: $isVisible ? 'translateX(0)' : \"translateX(-\".concat(sizeStyles.width, \")\"),\n left: $isVisible ? 0 : \"-\".concat(sizeStyles.width),\n top: 0\n }, sizeStyles);\n }\n\n case bottom:\n {\n return _objectSpread({\n transform: $isVisible ? 'translateY(0)' : \"translateY(\".concat(sizeStyles.height, \")\"),\n left: 0,\n bottom: $isVisible ? '0' : \"-\".concat(sizeStyles.height)\n }, sizeStyles);\n }\n\n case top:\n {\n return _objectSpread({\n transform: $isVisible ? 'translateY(0)' : \"translateY(-\".concat(sizeStyles.height, \")\"),\n left: 0,\n top: $isVisible ? '0' : \"-\".concat(sizeStyles.height)\n }, sizeStyles);\n }\n\n default:\n {\n return {};\n }\n }\n}\n\nexport var StyledRoot = styled('div', function (props) {\n return {\n position: 'fixed',\n overflow: 'auto',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0\n };\n});\nStyledRoot.displayName = \"StyledRoot\";\nexport var StyledBackdrop = styled('div', function (props) {\n var $animating = props.$animating,\n $isOpen = props.$isOpen,\n $isVisible = props.$isVisible,\n $showBackdrop = props.$showBackdrop,\n $theme = props.$theme;\n return _objectSpread({\n position: 'fixed',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n // Remove grey highlight\n WebkitTapHighlightColor: 'transparent',\n // Disable scroll capabilities.\n touchAction: 'none',\n opacity: $isVisible && $isOpen && $showBackdrop ? 1 : 0\n }, $animating ? {\n transitionProperty: 'opacity',\n transitionDuration: $theme.animation.timing400,\n transitionTimingFunction: $theme.animation.easeOutCurve\n } : null);\n});\nStyledBackdrop.displayName = \"StyledBackdrop\";\nexport var StyledDrawerContainer = styled('div', function (props) {\n var $animating = props.$animating,\n $isOpen = props.$isOpen,\n $isVisible = props.$isVisible,\n $theme = props.$theme;\n return _objectSpread(_objectSpread({\n backgroundColor: $theme.colors.backgroundPrimary,\n borderTopLeftRadius: $theme.borders.surfaceBorderRadius,\n borderTopRightRadius: $theme.borders.surfaceBorderRadius,\n borderBottomRightRadius: $theme.borders.surfaceBorderRadius,\n borderBottomLeftRadius: $theme.borders.surfaceBorderRadius\n }, getAnchorStyles(props)), {}, {\n // Animation\n opacity: $isVisible && $isOpen ? 1 : 0,\n transitionProperty: $animating ? 'opacity, transform' : null,\n transitionDuration: $animating ? $theme.animation.timing400 : null,\n transitionTimingFunction: $animating ? $theme.animation.easeOutCurve : null,\n display: 'flex',\n position: 'fixed'\n });\n});\nStyledDrawerContainer.displayName = \"StyledDrawerContainer\";\nexport var StyledDrawerBody = styled('div', function (props) {\n var $theme = props.$theme;\n return _objectSpread(_objectSpread({}, $theme.typography.font200), {}, {\n color: $theme.colors.contentPrimary,\n marginTop: $theme.sizing.scale900,\n marginBottom: $theme.sizing.scale900,\n marginLeft: $theme.sizing.scale900,\n marginRight: $theme.sizing.scale900,\n overflow: 'auto',\n width: '100%'\n });\n});\nStyledDrawerBody.displayName = \"StyledDrawerBody\";\nexport var StyledClose = styled('button', function (props) {\n var _ref;\n\n var $theme = props.$theme,\n $isFocusVisible = props.$isFocusVisible;\n var dir = $theme.direction === 'rtl' ? 'left' : 'right';\n return _ref = {\n // Reset button styles\n background: 'transparent',\n outline: 0,\n paddingLeft: 0,\n paddingTop: 0,\n paddingRight: 0,\n paddingBottom: 0,\n // colors\n fill: $theme.colors.primary,\n transitionProperty: 'fill, border-color',\n transitionDuration: $theme.animation.timing200,\n borderLeftWidth: '1px',\n borderRightWidth: '1px',\n borderTopWidth: '1px',\n borderBottomWidth: '1px',\n borderLeftStyle: 'solid',\n borderRightStyle: 'solid',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderLeftColor: 'transparent',\n borderRightColor: 'transparent',\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n ':hover': {\n fill: $theme.colors.primary600\n },\n ':focus': {\n outline: $isFocusVisible ? \"3px solid \".concat($theme.colors.accent) : 'none'\n },\n // Positioning\n position: 'absolute',\n top: $theme.sizing.scale500\n }, _defineProperty(_ref, dir, $theme.sizing.scale500), _defineProperty(_ref, \"width\", $theme.sizing.scale800), _defineProperty(_ref, \"height\", $theme.sizing.scale800), _defineProperty(_ref, \"display\", 'flex'), _defineProperty(_ref, \"justifyContent\", 'center'), _defineProperty(_ref, \"alignItems\", 'center'), _defineProperty(_ref, \"cursor\", 'pointer'), _ref;\n});\nStyledClose.displayName = \"StyledClose\";\nexport var Hidden = styled('div', {\n display: 'none'\n});\nHidden.displayName = \"Hidden\";","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport * as React from 'react';\nimport Delete from '../icon/delete.js';\nexport function CloseIcon(props) {\n return /*#__PURE__*/React.createElement(Delete, {\n size: \"inherit\",\n color: \"inherit\",\n title: props.title\n });\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n\n/* global document */\n\n/* eslint-disable cup/no-undef */\n\n\nimport * as React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport { LocaleContext } from '../locale/index.js';\nimport { getOverrides } from '../helpers/overrides.js';\nimport { Layer } from '../layer/index.js';\nimport { SIZE, CLOSE_SOURCE, ANCHOR } from './constants.js';\nimport { StyledRoot, StyledBackdrop, StyledDrawerContainer, StyledDrawerBody, StyledClose, Hidden } from './styled-components.js';\nimport { CloseIcon } from './close-icon.js';\nimport { isFocusVisible, forkFocus, forkBlur } from '../utils/focusVisible.js';\n\nvar Drawer = /*#__PURE__*/function (_React$Component) {\n _inherits(Drawer, _React$Component);\n\n var _super = _createSuper(Drawer);\n\n function Drawer() {\n var _this;\n\n _classCallCheck(this, Drawer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"animateOutTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"animateStartTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"lastFocus\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"lastMountNodeOverflowStyle\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_refs\", {});\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isVisible: false,\n mounted: false,\n isFocusVisible: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleFocus\", function (event) {\n if (isFocusVisible(event)) {\n _this.setState({\n isFocusVisible: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleBlur\", function (event) {\n if (_this.state.isFocusVisible !== false) {\n _this.setState({\n isFocusVisible: false\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEscape\", function () {\n if (!_this.props.closeable) {\n return;\n }\n\n _this.triggerClose(CLOSE_SOURCE.escape);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBackdropClick\", function (event) {\n if (_this.props.onBackdropClick) {\n _this.props.onBackdropClick(event);\n }\n\n if (!_this.props.closeable) {\n return;\n }\n\n _this.triggerClose(CLOSE_SOURCE.backdrop);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onCloseClick\", function () {\n _this.triggerClose(CLOSE_SOURCE.closeButton);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"animateOutComplete\", function () {\n _this.setState({\n isVisible: false\n });\n });\n\n return _this;\n }\n\n _createClass(Drawer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n mounted: true\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.resetMountNodeScroll();\n this.clearTimers();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var isOpen = this.props.isOpen;\n\n if ( // If isOpen is changing *or* we just mounted and drawer should be open\n isOpen !== prevProps.isOpen || isOpen && this.state.mounted && !prevState.mounted) {\n if (isOpen) {\n this.didOpen();\n } else {\n this.didClose();\n }\n }\n }\n }, {\n key: \"disableMountNodeScroll\",\n value: function disableMountNodeScroll() {\n if (this.props.showBackdrop) {\n var mountNode = this.getMountNode();\n this.lastMountNodeOverflowStyle = mountNode.style.overflow || '';\n mountNode.style.overflow = 'hidden';\n }\n }\n }, {\n key: \"resetMountNodeScroll\",\n value: function resetMountNodeScroll() {\n if (this.props.showBackdrop) {\n var mountNode = this.getMountNode();\n var lastStyle = this.lastMountNodeOverflowStyle;\n\n if (mountNode && lastStyle !== null) {\n mountNode.style.overflow = lastStyle || '';\n this.lastMountNodeOverflowStyle = null;\n }\n }\n }\n }, {\n key: \"getMountNode\",\n value: function getMountNode() {\n var mountNode = this.props.mountNode;\n\n if (mountNode) {\n return mountNode;\n } // Flow thinks body could be null (cast through any)\n // eslint-disable-next-line flowtype/no-weak-types\n\n\n return document.body;\n }\n }, {\n key: \"clearTimers\",\n value: function clearTimers() {\n if (this.animateOutTimer) {\n clearTimeout(this.animateOutTimer);\n }\n\n if (this.animateStartTimer) {\n // eslint-disable-next-line cup/no-undef\n cancelAnimationFrame(this.animateStartTimer);\n }\n }\n }, {\n key: \"didOpen\",\n value: function didOpen() {\n var _this2 = this; // Sometimes scroll starts past zero, possibly due to animation\n // Reset scroll to 0 (other libraries do this as well)\n\n\n var rootRef = this.getRef('Root').current;\n\n if (rootRef) {\n rootRef.scrollTop = 0;\n } // Clear any existing timers (like previous animateOutTimer)\n\n\n this.clearTimers();\n this.disableMountNodeScroll(); // eslint-disable-next-line cup/no-undef\n\n this.animateStartTimer = requestAnimationFrame(function () {\n _this2.setState({\n isVisible: true\n });\n });\n }\n }, {\n key: \"didClose\",\n value: function didClose() {\n this.resetMountNodeScroll();\n this.animateOutTimer = setTimeout(this.animateOutComplete, 500);\n }\n }, {\n key: \"triggerClose\",\n value: function triggerClose(source) {\n // If there's no source, it just means the isOpen prop changed. No need to call onClose.\n if (this.props.onClose && source) {\n this.props.onClose({\n closeSource: source\n });\n }\n }\n }, {\n key: \"getSharedProps\",\n value: function getSharedProps() {\n var _this$props = this.props,\n animate = _this$props.animate,\n isOpen = _this$props.isOpen,\n size = _this$props.size,\n closeable = _this$props.closeable,\n anchor = _this$props.anchor,\n showBackdrop = _this$props.showBackdrop;\n return {\n $animating: animate,\n $isVisible: this.state.isVisible,\n $isOpen: !!isOpen,\n $size: size,\n $closeable: !!closeable,\n $anchor: anchor,\n $isFocusVisible: this.state.isFocusVisible,\n $showBackdrop: showBackdrop\n };\n }\n }, {\n key: \"getChildren\",\n value: function getChildren() {\n var children = this.props.children;\n return typeof children === 'function' ? children() : children;\n }\n }, {\n key: \"getRef\",\n value: function getRef(component) {\n if (!this._refs[component]) {\n this._refs[component] = /*#__PURE__*/React.createRef();\n }\n\n return this._refs[component];\n }\n }, {\n key: \"renderDrawer\",\n value: function renderDrawer(renderedContent) {\n var _this3 = this;\n\n var _this$props2 = this.props,\n _this$props2$override = _this$props2.overrides,\n overrides = _this$props2$override === void 0 ? {} : _this$props2$override,\n closeable = _this$props2.closeable,\n autoFocus = _this$props2.autoFocus;\n var RootOverride = overrides.Root,\n DrawerContainerOverride = overrides.DrawerContainer,\n DrawerBodyOverride = overrides.DrawerBody,\n BackdropOverride = overrides.Backdrop,\n CloseOverride = overrides.Close;\n\n var _getOverrides = getOverrides(RootOverride, StyledRoot),\n _getOverrides2 = _slicedToArray(_getOverrides, 2),\n Root = _getOverrides2[0],\n rootProps = _getOverrides2[1];\n\n var _getOverrides3 = getOverrides(BackdropOverride, StyledBackdrop),\n _getOverrides4 = _slicedToArray(_getOverrides3, 2),\n Backdrop = _getOverrides4[0],\n backdropProps = _getOverrides4[1];\n\n var _getOverrides5 = getOverrides(DrawerContainerOverride, StyledDrawerContainer),\n _getOverrides6 = _slicedToArray(_getOverrides5, 2),\n DrawerContainer = _getOverrides6[0],\n drawerContainerProps = _getOverrides6[1];\n\n var _getOverrides7 = getOverrides(DrawerBodyOverride, StyledDrawerBody),\n _getOverrides8 = _slicedToArray(_getOverrides7, 2),\n DrawerBody = _getOverrides8[0],\n drawerBodyProps = _getOverrides8[1];\n\n var _getOverrides9 = getOverrides(CloseOverride, StyledClose),\n _getOverrides10 = _slicedToArray(_getOverrides9, 2),\n Close = _getOverrides10[0],\n closeProps = _getOverrides10[1];\n\n var sharedProps = this.getSharedProps();\n return /*#__PURE__*/React.createElement(LocaleContext.Consumer, null, function (locale) {\n return /*#__PURE__*/React.createElement(FocusLock, {\n returnFocus: true,\n autoFocus: autoFocus,\n noFocusGuards: true\n }, /*#__PURE__*/React.createElement(Root, _extends({\n \"data-baseweb\": \"drawer\",\n ref: _this3.getRef('Root')\n }, sharedProps, rootProps), /*#__PURE__*/React.createElement(Backdrop, _extends({\n onClick: _this3.onBackdropClick\n }, sharedProps, backdropProps)), /*#__PURE__*/React.createElement(DrawerContainer, _extends({}, sharedProps, drawerContainerProps), /*#__PURE__*/React.createElement(DrawerBody, _extends({}, sharedProps, drawerBodyProps), renderedContent), closeable ? /*#__PURE__*/React.createElement(Close, _extends({\n \"aria-label\": locale.drawer.close,\n onClick: _this3.onCloseClick\n }, sharedProps, closeProps, {\n onFocus: forkFocus(closeProps, _this3.handleFocus),\n onBlur: forkBlur(closeProps, _this3.handleBlur)\n }), /*#__PURE__*/React.createElement(CloseIcon, {\n title: locale.drawer.close\n })) : null)));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var mountedAndOpen = this.state.mounted && (this.props.isOpen || this.state.isVisible);\n var renderedContent = mountedAndOpen || this.props.renderAll ? this.getChildren() : null;\n\n if (renderedContent) {\n if (mountedAndOpen) {\n return /*#__PURE__*/React.createElement(Layer, {\n onEscape: this.onEscape,\n mountNode: this.props.mountNode\n }, this.renderDrawer(renderedContent));\n } else {\n return /*#__PURE__*/React.createElement(Hidden, null, renderedContent);\n }\n }\n\n return null;\n }\n }]);\n\n return Drawer;\n}(React.Component);\n\n_defineProperty(Drawer, \"defaultProps\", {\n animate: true,\n closeable: true,\n isOpen: false,\n overrides: {},\n size: SIZE.default,\n anchor: ANCHOR.right,\n showBackdrop: true,\n autoFocus: true,\n renderAll: false\n});\n\nexport default Drawer;","function _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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\n// BASEUI-GENERATED-REACT-ICON\n// DO NOT EDIT THIS FILE DIRECTLY, SEE README.md\n\n\nimport * as React from 'react';\nimport { useStyletron } from '../styles/index.js';\nimport { mergeOverride, toObjectOverride } from '../helpers/overrides.js';\nimport Icon from './icon.js';\n\nfunction Menu(props, ref) {\n var _useStyletron = useStyletron(),\n _useStyletron2 = _slicedToArray(_useStyletron, 2),\n theme = _useStyletron2[1];\n\n var _props$title = props.title,\n title = _props$title === void 0 ? 'Menu' : _props$title,\n size = props.size,\n color = props.color,\n _props$overrides = props.overrides,\n overrides = _props$overrides === void 0 ? {} : _props$overrides,\n restProps = _objectWithoutProperties(props, [\"title\", \"size\", \"color\", \"overrides\"]);\n\n var SvgOverride = mergeOverride( // Icons from the theme target the SVG override in the underlying Icon component\n {\n component: theme.icons && theme.icons.Menu ? theme.icons.Menu : null\n }, overrides && overrides.Svg ? toObjectOverride(overrides.Svg) : {});\n return /*#__PURE__*/React.createElement(Icon, _extends({\n viewBox: \"0 0 24 24\",\n ref: ref,\n title: title,\n size: size,\n color: color,\n overrides: {\n Svg: SvgOverride\n }\n }, restProps), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"4\",\n y: \"11\",\n width: \"16\",\n height: \"2\",\n rx: \"1\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"4\",\n y: \"5\",\n width: \"16\",\n height: \"2\",\n rx: \"1\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"4\",\n y: \"17\",\n width: \"16\",\n height: \"2\",\n rx: \"1\"\n }));\n}\n\nexport default /*#__PURE__*/React.forwardRef(Menu);","/*\nCopyright (c) Uber Technologies, Inc.\n\nThis source code is licensed under the MIT license found in the\nLICENSE file in the root directory of this source tree.\n*/\nimport * as React from 'react';\nimport ListItem from './list-item.js';\nimport { mergeOverrides } from '../helpers/overrides.js';\nvar MenuAdapter = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ListItem, {\n ref: ref,\n sublist: props.sublist || props.$size === 'compact',\n artwork: props.artwork,\n artworkSize: props.artworkSize,\n endEnhancer: props.endEnhancer,\n overrides: // $FlowFixMe\n mergeOverrides({\n Root: {\n props: {\n onMouseEnter: props.onMouseEnter,\n onClick: props.onClick\n },\n style: function style(_ref) {\n var $theme = _ref.$theme;\n return {\n backgroundColor: props.$isHighlighted ? $theme.colors.menuFillHover : null,\n cursor: props.$disabled ? 'not-allowed' : 'pointer'\n };\n }\n }\n }, props.overrides)\n }, props.children);\n});\nMenuAdapter.displayName = 'MenuAdapter';\nexport default MenuAdapter;","import React, { forwardRef, useState } from 'react';\nimport { useStyletron } from 'baseui';\nimport { Drawer, SIZE } from 'baseui/drawer';\nimport { StatefulMenu } from 'baseui/menu';\nimport { Menu } from 'baseui/icon';\nimport { ListItemLabel, MenuAdapter } from 'baseui/list';\nimport { Button, KIND, SHAPE } from 'baseui/button';\n\n\nconst NavDrawer = props => {\n const { menuLinks } = props;\n const [css] = useStyletron();\n const [isOpen, setIsOpen] = useState(false);\n\n const items = menuLinks.map(link => ({\n label: link.name,\n href: link.link\n }))\n\n const close = () => {\n setIsOpen(false);\n }\n\n return (\n \n setIsOpen(true)}\n >\n \n \n close()}\n isOpen={isOpen}\n size={SIZE.full}\n >\n (\n \n \n {props.item.label}\n \n \n ))\n }\n }\n }\n }\n }}\n />\n \n \n )\n}\n\nexport default NavDrawer;","import React from \"react\"\nimport PropTypes from \"prop-types\";\nimport { useStyletron } from 'baseui';\nimport { Link } from \"gatsby\";\nimport { Button, SHAPE, KIND } from 'baseui/button';\n\nimport \"./_header.scss\";\nimport NavDrawer from \"./navDrawer\";\n\nconst Header = ({ siteTitle, menuLinks }) => {\n const [css] = useStyletron();\n\n return (\n \n
    \n
    \n \n {siteTitle}\n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n )\n}\nHeader.propTypes = {\n siteTitle: PropTypes.object,\n}\nHeader.defaultProps = {\n siteTitle: `Surfboard`,\n}\nexport default Header","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _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\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","import Header from './Header';\nexport default Header;","import Layout from './Layout';\nexport default Layout;","import React from 'react';\nimport { StaticQuery, graphql, withPrefix, Link } from \"gatsby\";\nimport Logo from \"../../static/images/surfboardwhite.svg\";\nimport Header from \"../Header\";\nimport { Helmet } from 'react-helmet';\nimport SectionContainer from '../SectionContainer'\nimport CookieConsent from \"react-cookie-consent\";\n\nimport './_layout.scss';\n\nconst Layout = ({ children }) => {\n \n const heroLogo = \n \n return (\n (\n
    \n \n \n \n
    \n {children}\n
    \n \n
    \n \n {heroLogo}\n \n
    \n Terms of Service\n Privacy Policy\n
    \n \n
    \n
    \n
    \n \n {\n document.cookie = \"ga-disable-G-W1RN9ZEWMS=true; expires=Thu, 31 Dec 2099 23:59:59 UTC;path=/\";\n window.disableStr = 1;\n }} \n >\n We use cookies to gather basic analytics on how visitors use our website. Learn more\n \n
    \n \n )}\n />\n )\n}\n\nexport default Layout;","import React from 'react';\nimport { Provider as StyletronProvider } from \"styletron-react\";\nimport { BaseProvider, createTheme } from 'baseui';\nimport { Client as Styletron } from \"styletron-engine-atomic\";\nimport Layout from './src/components/Layout';\n\nconst primitives = {\n primaryFontFamily: 'Work Sans',\n };\n \nconst theme = createTheme(primitives);\n\nconst engine = new Styletron({\n hydrate: document.getElementsByClassName('_styletron_hydrate_'),\n});\n\nexport const wrapRootElement = ({ element }) => {\n\n if (!engine) return null;\n\n return (\n \n \n {element}\n \n \n )\n}\n\nexport const wrapPageElement = ({ element, props }) => {\n return {element}\n }","import React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport Indicator from \"./components/Indicator\";\n\nconst ShadowPortal = ({\n children,\n identifier\n}) => {\n const mountNode = React.useRef(null);\n const portalNode = React.useRef(null);\n const shadowNode = React.useRef(null);\n const [, forceUpdate] = React.useState();\n React.useEffect(() => {\n const ownerDocument = mountNode.current.ownerDocument;\n portalNode.current = ownerDocument.createElement(identifier);\n shadowNode.current = portalNode.current.attachShadow({\n mode: `open`\n });\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return () => {\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, []);\n return shadowNode.current ? /*#__PURE__*/createPortal(children, shadowNode.current) : /*#__PURE__*/React.createElement(\"span\", {\n ref: mountNode\n });\n};\n\nexport const wrapRootElement = ({\n element\n}, pluginOptions) => {\n if (process.env.GATSBY_PREVIEW_INDICATOR_ENABLED === `true` && !(pluginOptions !== null && pluginOptions !== void 0 && pluginOptions.disablePreviewUI)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, element, /*#__PURE__*/React.createElement(ShadowPortal, {\n identifier: \"gatsby-preview-indicator\"\n }, /*#__PURE__*/React.createElement(Indicator, null)));\n } else {\n return /*#__PURE__*/React.createElement(React.Fragment, null, element);\n }\n};","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(sendPageView);\n });\n } else {\n // simulate 2 rAF calls\n setTimeout(sendPageView, 32);\n }\n\n return null;\n};","/**\n * Implement Gatsby's Browser APIs in this file.\n *\n * See: https://www.gatsbyjs.org/docs/browser-apis/\n */\n\nimport mailgo from \"mailgo\";\n\nlet onInitialClientRender = (_, pluginOptions) => {\n // mailgo config\n let { mailgoConfig } = pluginOptions;\n\n // execute mailgo\n mailgo(mailgoConfig);\n};\n\nexport { onInitialClientRender };\n","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\"; // when we don't have localisation in our manifest, we tree shake everything away\n\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _gatsby = require(\"gatsby\");\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\n\nexports.default = _default;","import * as React from \"react\";\nimport { Client as Styletron } from \"styletron-engine-atomic\";\nimport { Provider, DebugEngine } from \"styletron-react\";\nconst debugEngine = process.env.NODE_ENV !== `production` ? new DebugEngine() : undefined;\nexport function wrapRootElement({\n element\n}, {\n prefix,\n debug\n}) {\n const enableDebug = debug === true || typeof debug === `undefined`;\n const styleElements = document.querySelectorAll(`._styletron_hydrate_`);\n return /*#__PURE__*/React.createElement(Provider, {\n value: new Styletron({\n hydrate: styleElements,\n prefix\n }),\n debugMode: enableDebug ? debugEngine : undefined,\n debugAfterHydration: enableDebug\n }, element);\n}","import SectionContainer from './SectionContainer';\nexport default SectionContainer;","import React from 'react';\nimport './SectionContainer.scss';\n\nconst SectionContainer = props => {\n const { children, backgroundColor, className } = props;\n\n return (\n
    \n
    \n {children}\n
    \n
    \n )\n}\n\nexport default SectionContainer;","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _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\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _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\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
    Not Found!
    \n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","/**\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 invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.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","var React = require('react');\n\nfunction Surfboardwhite (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M7.928 18.944H29.144V29.024H14.168L23.288 42.56C27.384 48.384 29.656 52.384 30.104 54.56C30.36 55.584 30.488 56.64 30.488 57.728C30.488 62.272 28.792 65.696 25.4 68H0.92V57.92H18.488L8.216 42.848C7.768 42.144 7.064 41.152 6.104 39.872C5.208 38.592 4.504 37.568 3.992 36.8C3.48 35.968 3.128 35.36 2.936 34.976C2.744 34.592 2.488 34.112 2.168 33.536C1.848 32.896 1.624 32.352 1.496 31.904C1.24 30.688 1.112 29.696 1.112 28.928C1.112 24.256 3.384 20.928 7.928 18.944ZM52.745 68H42.665C39.849 64.416 37.929 60.832 36.905 57.248C35.881 53.664 35.369 49.184 35.369 43.808V18.944H48.137V44.768C48.137 50.592 49.289 54.976 51.593 57.92H60.521V18.944H73.289V68H63.209L61.481 64.544C59.049 66.848 56.137 68 52.745 68ZM81.599 68V18.944H90.719L93.119 24.128C95.679 20.672 98.911 18.944 102.815 18.944H106.559V31.808H94.367V68H81.599ZM124.93 0.799995H138.754V10.88H130.114C127.938 12.224 126.85 14.912 126.85 18.944H136.834V29.024H126.85V68H114.082V29.024H108.802V18.944H114.082C114.082 10.624 117.698 4.576 124.93 0.799995ZM141.784 0.799995H154.456V22.4C155.864 21.12 157.176 20.224 158.392 19.712C159.672 19.2 161.56 18.944 164.056 18.944H171.736C174.424 21.568 176.536 24.96 178.072 29.12C179.608 33.28 180.376 37.856 180.376 42.848C180.376 53.536 177.176 61.92 170.776 68H161.656C158.52 68 155.896 66.816 153.784 64.448L152.056 68H141.784V0.799995ZM154.552 57.92H163.768C166.136 53.888 167.32 48.992 167.32 43.232C167.32 37.472 166.104 32.736 163.672 29.024H154.552V57.92ZM216.437 68H195.509C189.109 62.048 185.909 53.92 185.909 43.616C185.909 38.432 186.613 33.92 188.021 30.08C189.493 26.24 191.797 22.528 194.933 18.944H217.397C220.725 22.784 222.997 26.528 224.213 30.176C225.429 33.76 226.037 38.24 226.037 43.616C226.037 53.92 222.837 62.048 216.437 68ZM202.325 57.92H209.621C211.925 53.44 213.077 48.352 213.077 42.656C213.077 36.96 211.893 32.416 209.525 29.024H202.325C200.021 32.288 198.869 36.928 198.869 42.944C198.869 48.896 200.021 53.888 202.325 57.92ZM256.045 45.824H245.773C244.429 47.488 243.757 49.568 243.757 52.064C243.757 54.56 244.461 56.512 245.869 57.92H256.045V45.824ZM235.405 18.944H259.213C263.053 21.248 265.581 23.904 266.797 26.912C268.013 29.856 268.621 33.888 268.621 39.008V53.408C268.621 58.72 268.749 63.584 269.005 68H258.061L256.333 64.544C253.837 66.848 250.317 68 245.773 68H239.725C234.285 64.416 231.565 59.264 231.565 52.544C231.565 45.76 234.349 40.416 239.917 36.512H248.941C251.437 36.512 253.773 37.28 255.949 38.816V34.016C255.949 31.52 254.861 29.856 252.685 29.024H235.405V18.944ZM276.974 68V18.944H286.094L288.494 24.128C291.054 20.672 294.286 18.944 298.19 18.944H301.934V31.808H289.742V68H276.974ZM342.811 68H333.115L331.387 64.544C329.979 65.824 328.635 66.72 327.355 67.232C326.139 67.744 324.283 68 321.787 68H313.435C310.619 65.312 308.379 61.792 306.715 57.44C305.115 53.088 304.315 48.224 304.315 42.848C304.315 37.408 305.115 32.8 306.715 29.024C308.379 25.248 310.715 21.888 313.723 18.944H321.979C325.371 18.944 328.059 19.84 330.043 21.632V0.799995H342.811V68ZM330.043 29.024H320.827C318.459 33.056 317.275 38.016 317.275 43.904C317.275 49.728 318.427 54.4 320.731 57.92H330.043V29.024Z\",\"fill\":\"white\"}));\n}\n\nSurfboardwhite.defaultProps = {\"width\":\"129\",\"height\":\"26\",\"viewBox\":\"0 0 343 68\",\"fill\":\"none\"};\n\nmodule.exports = Surfboardwhite;\n\nSurfboardwhite.default = Surfboardwhite;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _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}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}"],"names":["module","exports","self","ReferenceError","__esModule","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","setPrototypeOf","subClass","superClass","create","constructor","obj","excluded","sourceKeys","keys","indexOf","_setPrototypeOf","o","p","__proto__","getLocation","_source$location","location","search","hash","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","push","popstateListener","action","addEventListener","removeEventListener","filter","fn","navigate","to","_ref","undefined","_ref$replace","replace","go","Date","now","replaceState","pushState","e","transition","Promise","res","forEach","createMemorySource","initialPath","searchIndex","initialLocation","substr","index","stack","states","name","entries","_","uri","_uri$split","split","_uri$split$","_uri$split2","_uri$split2$","newIndex","window","document","createElement","globalHistory","shallowCompare","validateRedirect","insertParams","resolve","match","pick","startsWith","_invariant","_invariant2","default","string","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","params","routeSegments","path","max","Math","routeSegment","uriSegment","isSplat","slice","map","decodeURIComponent","join","dynamicMatch","paramRe","exec","reservedNames","value","isDynamic","segment","test","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","a","b","addQuery","_len","query","Array","_key","q","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","concat","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","from","obj1","obj2","obj1Keys","every","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","styled","$theme","$size","$kind","$shape","$isLoading","$isSelected","$disabled","display","flexDirection","alignItems","justifyContent","borderLeftWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftStyle","borderTopStyle","borderRightStyle","borderBottomStyle","outline","boxShadow","$isFocusVisible","colors","accent","textDecoration","WebkitAppearance","transitionProperty","transitionDuration","animation","timing200","transitionTimingFunction","linearCurve","cursor","backgroundColor","buttonDisabledFill","color","buttonDisabledText","marginLeft","marginTop","marginRight","marginBottom","_ref10","typography","font150","font250","font450","font350","getFontStyles","_ref9","borders","buttonBorderRadius","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","getBorderRadiiStyles","_ref11","iconShape","paddingTop","sizing","scale200","paddingBottom","paddingLeft","scale300","paddingRight","scale400","scale500","scale600","scale700","scale550","getPaddingStyles","_ref12","freeze","buttonPrimarySelectedText","buttonPrimarySelectedFill","buttonPrimaryText","buttonPrimaryFill","buttonPrimaryActive","buttonPrimaryHover","buttonSecondaryText","buttonSecondaryFill","buttonSecondaryActive","buttonSecondaryHover","buttonTertiarySelectedText","buttonTertiarySelectedFill","buttonTertiaryText","buttonTertiaryFill","buttonTertiaryActive","buttonTertiaryHover","buttonMinimalSelectedText","buttonMinimalSelectedFill","buttonMinimalText","buttonMinimalFill","buttonMinimalActive","buttonMinimalHover","getKindStyles","_ref13","height","width","getShapeStyles","displayName","_ref2","direction","_ref4","_ref6","margins","scale0","scale100","lineHeight","position","_ref7","_getLoadingSpinnerCol","_ref8","foreground","buttonDisabledSpinnerForeground","background","buttonDisabledSpinnerBackground","buttonSecondarySpinnerForeground","buttonSecondarySpinnerBackground","buttonTertiarySpinnerForeground","buttonTertiarySpinnerBackground","buttonMinimalSpinnerForeground","buttonMinimalSpinnerBackground","buttonPrimarySpinnerForeground","buttonPrimarySpinnerBackground","getLoadingSpinnerColors","dimension","borderTopColor","borderLeftColor","borderBottomColor","borderRightColor","boxSizing","animationDuration","timing700","animationTimingFunction","animationIterationCount","animationName","transform","getSharedProps","disabled","isLoading","isSelected","kind","shape","size","_slicedToArray","arr","isArray","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","n","toString","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_objectWithoutProperties","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","RenderEnhancer","props","Enhancer","restProps","ButtonInternals","children","_props$overrides","overrides","startEnhancer","endEnhancer","_getOverrides2","StartEnhancer","startEnhancerProps","_getOverrides4","EndEnhancer","endEnhancerProps","sharedProps","defaultProps","_typeof","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","_assertThisInitialized","getPrototypeOf","Button","_React$Component","_inherits","protoProps","staticProps","_super","_this","_args","isFocusVisible","_this$props","onClick","_len2","args","_key2","preventDefault","event","setState","_this$props2","_this$props2$override","forwardedRef","BaseButton","Root","baseButtonProps","LoadingSpinner","loadingSpinnerProps","_getOverrides6","LoadingSpinnerContainer","loadingSpinnerContainerProps","ref","internalOnClick","onFocus","handleFocus","onBlur","handleBlur","style","opacity","ForwardedButton","KIND","primary","secondary","tertiary","minimal","SHAPE","pill","round","circle","square","SIZE","mini","compact","large","getOverride","override","isValidElementType","component","getOverrideProps","$style","toObjectOverride","getOverrides","defaultComponent","Component","DynamicOverride","mappedProps","nextProps","mergeOverrides","merged","allIdentifiers","acc","mergeOverride","mergeConfigurationOverrides","getMediaQuery","breakpoint","getMediaQueries","breakpoints","Delete","theme","_props$title","title","SvgOverride","icons","Svg","viewBox","fillRule","clipRule","d","omitDollarPrefixedKeys","Icon","overrideProps","passThroughProps","__STYLETRON__","$color","getSvgStyles","fill","Container","top","left","right","zIndex","$zIndex","LayerComponent","container","onEscape","onDocumentClick","context","addEscapeHandler","isHoverLayer","addDocClickHandler","onMount","mountNode","layersManagerHost","body","addContainer","prevProps","removeDocClickHandler","removeEscapeHandler","onUnmount","contains","removeChild","_this$props3","ownerDocument","sibling","insertBefore","appendChild","_this$props4","childrenToRender","Layer","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","StyledAppContainer","StyledLayersContainer","defaultEventHandlerFn","LayersContext","Provider","Consumer","LayersManager","docClickHandler","docClickHandlers","escapeKeyHandler","escapeKeyHandlers","prev","handler","forceUpdate","containerRef","current","onKeyUp","_this2","_this$props$overrides","AppContainer","appContainerProps","LayersContainer","layersContainerProps","onAddEscapeHandler","onRemoveEscapeHandler","onAddDocClickHandler","onRemoveDocClickHandler","ARTWORK_SIZES","SMALL","MEDIUM","LARGE","DEFAULT","ROUND","LabelSublistContent","labelSublistContentProps","LabelContent","labelContentProps","LabelDescription","labelDescriptionProps","sublist","description","ListItem","Artwork","artwork","rootProps","ArtworkContainer","artworkContainerProps","Content","contentProps","_getOverrides8","EndEnhancerContainer","endEnhancerContainerProps","artworkSize","$artworkSize","$sublist","Boolean","$mLeft","StyledRoot","backgroundPrimary","listStyleType","radius400","overflow","StyledContent","border100","flexGrow","minHeight","scale1600","StyledEndEnhancerContainer","StyledArtworkContainer","_ref3","StyledLabelContent","LabelMedium","contentPrimary","StyledLabelDescription","_ref5","ParagraphSmall","StyledLabelSublistContent","minWidth","_ref9$$maxLines","$maxLines","HeadingSmall","_ref10$$maxLines","ParagraphLarge","$isText","whiteSpace","textOverflow","ParagraphMedium","artworkSizeToValue","isSublist","accordion","collapse","expand","breadcrumbs","ariaLabel","datepicker","ariaLabelRange","ariaLabelCalendar","ariaRoleDescriptionCalendarMonth","previousMonth","nextMonth","pastWeek","pastMonth","pastThreeMonths","pastSixMonths","pastYear","pastTwoYears","screenReaderMessageInput","selectedDate","selectedDateRange","selectSecondDatePrompt","quickSelectLabel","quickSelectAriaLabel","quickSelectPlaceholder","timeSelectEndLabel","timeSelectStartLabel","timePickerAriaLabel12Hour","timePickerAriaLabel24Hour","timezonePickerAriaLabel","selectedStartDateLabel","selectedEndDateLabel","dateNotAvailableLabel","dateAvailableLabel","selectedLabel","chooseLabel","datatable","emptyState","loadingState","searchAriaLabel","filterAdd","filterExclude","filterApply","filterAppliedTo","optionsLabel","optionsSearch","optionsEmpty","categoricalFilterSelectAll","categoricalFilterSelectClear","categoricalFilterEmpty","datetimeFilterRange","datetimeFilterRangeDatetime","datetimeFilterRangeDate","datetimeFilterRangeTime","datetimeFilterCategorical","datetimeFilterCategoricalWeekday","datetimeFilterCategoricalMonth","datetimeFilterCategoricalQuarter","datetimeFilterCategoricalHalf","datetimeFilterCategoricalFirstHalf","datetimeFilterCategoricalSecondHalf","datetimeFilterCategoricalYear","numericalFilterRange","numericalFilterSingleValue","booleanFilterTrue","booleanFilterFalse","booleanColumnTrueShort","booleanColumnFalseShort","buttongroup","fileuploader","dropFilesToUpload","or","browseFiles","retry","cancel","menu","noResultsMsg","parentMenuItemAriaLabel","modal","close","drawer","pagination","preposition","select","placeholder","toast","LocaleContext","STATE_CHANGE_TYPES","click","moveUp","moveDown","mouseEnter","mouseLeave","focus","reset","character","enter","KEY_STRINGS","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","Space","Escape","Backspace","Home","End","OPTION_LIST_SIZE","NestedMenuContext","addMenuToNesting","removeMenuFromNesting","getParentMenu","getChildMenu","mountRef","isSame","isSameNode","MaybeChildMenu","ChildMenu","item","ChildMenuPopover","PopoverOverride","popoverProps","ctx","focusLock","autoFocus","isOpen","renderAll","content","ignoreBoundary","onMouseEnterDelay","onMouseLeaveDelay","onEsc","resetParentMenu","placement","Body","onMouseLeave","onKeyDown","keyCode","OptionList","_props$getItemLabel","getItemLabel","label","_props$onClick","_props$onMouseEnter","onMouseEnter","_props$renderHrefAsAn","renderHrefAsAnchor","_props$resetMenu","resetMenu","_props$size","$isHighlighted","listItemProps","ListItemAnchor","listItemAnchorProps","locale","$item","getItem","isHighlighted","areEqualShallow","compare","$isFocused","forwarded","Menu","_props$ariaLabel","_props$rootRef","rootRef","_props$focusMenu","focusMenu","_props$unfocusMenu","unfocusMenu","_props$handleMouseLea","handleMouseLeave","_props$handleKeyDown","handleKeyDown","_props$renderAll","_React$useState2","focusVisible","setFocusVisible","List","listProps","Option","optionProps","EmptyState","emptyStateProps","OptgroupHeader","optgroupHeaderProps","groupedItems","items","__ungrouped","optgroups","_optgroups$reduce","optgroup","els","itemIndex","groupItems","_props$getRequiredIte","getRequiredItemProps","_getRequiredItemProps","isFocused","_getRequiredItemProps2","role","elements","isEmpty","activedescendantId","onMouseOver","tabIndex","scrollItemIntoView","child","parent","isFirst","isLast","scrollAlignInView","childRect","getBoundingClientRect","parentRect","bottom","scrollTop","scrollHeight","targetBottom","offsetTop","DEFAULT_PROPS","initialState","highlightedIndex","typeAhead","keyboardControlNode","stateReducer","changeType","changes","onItemSelect","forceHighlight","MenuStatefulContainerInner","handleArrowKey","handleEnterKey","clearTimeout","typeAheadTimeOut","handleAlphaDown","prevIndex","typeAheadChars","setTimeout","nextIndex","list","getItems","notMatch","toUpperCase","_label","internalSetState","refList","min","optionIds","childMenu","itemRef","uidSeed","_this$props$getRequir","disabledVal","requiredItemProps","id","handleItemClick","bind","handleMouseEnter","output","prevState","range","onActiveDescendantChange","_this3","MenuStatefulContainer","StatefulMenu","_React$PureComponent","renderProps","StyledList","menuFill","popoverBorderRadius","lighting","shadow600","getFontColor","menuFontDisabled","menuFontHighlighted","menuFontSelected","menuFontDefault","getBackgroundColor","menuFillHover","StyledEmptyState","font100","font200","textAlign","scale800","StyledOptgroupHeader","paddingX","paddingY","colorPrimary","StyledListItemAnchor","StyledListItemElement","easeOutCurve","scale900","StyledListItem","Styled","_ref4$$theme","alignSelf","PLACEMENT","auto","topLeft","topRight","rightTop","rightBottom","bottomRight","bottomLeft","leftBottom","leftTop","TRIGGER_TYPE","hover","ACCESSIBILITY_TYPE","none","tooltip","POPOVER_MARGIN","ARROW_SIZE","ANIMATE_OUT_TIME","ANIMATE_IN_TIME","ARROW_WIDTH","ceil","sqrt","pow","MoveFocusInside","observedRef","isDisabled","className","enabled","medium","car","observed","focusInside","moveFocusInside","constants","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","called","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","element","property","nodeType","css","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","getScrollParent","_getStyleComputedProp","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollLeft","modifier","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","parseInt","getWindowSizes","classCallCheck","createClass","getClientRect","offsets","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","scrollParent","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","x","y","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","check","runModifiers","modifiers","data","ends","prop","findIndex","cur","console","warn","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","prefix","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","callback","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","splitRegex","ops","op","mergeWithPrevious","str","toValue","index2","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","priority","escapeWithReference","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Defaults","Popper","requestAnimationFrame","jquery","Utils","g","PopperUtils","toPopperPlacement","parsePopperOffset","Tether","isMounted","normalizedOffsets","onPopperUpdate","anchorRef","_this$props$anchorRef","anchorHeight","anchorWidth","popperRef","_this$props$popperRef","_height","_width","popperHeight","initializePopper","destroyPopover","popperOptions","restOptions","arrowRef","applyReactStyle","OPPOSITE_POSITIONS","getOppositePosition","isVerticalPosition","fromPopperPlacement","popoverPlacement","splitPlacement","s","getStartPosition","arrowSize","popoverMargin","margin","getEndPosition","opposite","$isOpen","$isAnimating","$placement","$popoverOffset","$showArrow","$popoverMargin","$isHoverTrigger","backgroundTertiary","easeInCurve","pointerEvents","$arrowOffset","oppositePosition","alignmentProperty","getArrowPositionStyles","Hidden","accessibilityType","returnFocus","showArrow","triggerType","PopoverInner","getDefaultState","isAnimating","animateOutCompleteTimer","animateOutTime","onMouseLeaveTimer","triggerOnMouseEnterWithDelay","onMouseEnterTimer","triggerOnMouseLeaveWithDelay","arrowOffset","popoverOffset","animateInTimer","animateIn","evt","composedPath","anchor","onClickOutside","init","autoFocusAfterPositioning","isLayerMounted","clearTimers","animateOutTimer","animateOut","timerId","triggerOnMouseLeave","triggerOnMouseEnter","popoverId","getPopoverIdAttr","anchorProps","isAccessibilityTypeMenu","isClickTrigger","isAccessibilityTypeTooltip","getAnchorIdAttr","isHoverTrigger","onAnchorMouseEnter","onAnchorMouseLeave","onAnchorClick","bodyProps","onPopoverMouseEnter","onPopoverMouseLeave","_this$props$popoverMa","_this$state","childArray","error","getAnchorFromChildren","isValidElement","getAnchorProps","renderedContent","ArrowOverride","Arrow","BodyOverride","InnerOverride","Inner","getPopoverBodyProps","_this4","mountedAndOpen","rendered","renderAnchor","renderContent","defaultPopperOptions","noFocusGuards","focusOptions","renderPopover","Popover","innerRef","wrapper","StyledComponent","createStyled","getInitialStyle","driver","useStyletron","withWrapper","StyledElement","wrapperFn","LightTheme","grid","mediaQuery","ThemeContext","hexToRgb","hex","alpha","shorthandRegex","m","r","ellipsisText","wordWrap","expandBorderStyles","borderStyles","borderWidth","borderStyle","borderColor","tagHoverBackground","themePrimitives","white","primary700","primary600","primaryB","primary100","primary200","primary300","buttonSecondarySelectedFill","buttonSecondarySelectedText","primary50","mono200","mono600","mono400","breadcrumbsText","mono900","breadcrumbsSeparatorFill","mono700","datepickerBackground","mono100","datepickerDayFont","mono1000","datepickerDayFontDisabled","mono500","datepickerDayPseudoSelected","datepickerDayPseudoHighlighted","calendarBackground","calendarForeground","calendarForegroundDisabled","calendarHeaderBackground","calendarHeaderForeground","calendarHeaderBackgroundActive","calendarHeaderForegroundDisabled","primary500","calendarDayBackgroundPseudoSelected","calendarDayForegroundPseudoSelected","calendarDayBackgroundPseudoSelectedHighlighted","calendarDayForegroundPseudoSelectedHighlighted","calendarDayBackgroundSelected","calendarDayForegroundSelected","calendarDayBackgroundSelectedHighlighted","calendarDayForegroundSelectedHighlighted","comboboxListItemFocus","comboboxListItemHover","mono300","fileUploaderBackgroundColor","fileUploaderBackgroundColorActive","fileUploaderBorderColorActive","fileUploaderBorderColorDefault","fileUploaderMessageColor","mono800","linkText","linkVisited","linkHover","linkActive","listHeaderFill","listBodyFill","listIconFill","listBorder","progressStepsCompletedText","progressStepsCompletedFill","progressStepsActiveText","progressStepsActiveFill","progressStepsIconActiveFill","toggleFill","toggleFillChecked","toggleFillDisabled","toggleTrackFill","toggleTrackFillDisabled","tickFill","tickFillHover","tickFillActive","tickFillSelected","tickFillSelectedHover","tickFillSelectedHoverActive","tickFillError","negative50","tickFillErrorHover","negative100","tickFillErrorHoverActive","negative200","tickFillErrorSelected","negative400","tickFillErrorSelectedHover","negative500","tickFillErrorSelectedHoverActive","negative600","tickFillDisabled","tickBorder","tickBorderError","tickMarkFill","tickMarkFillError","tickMarkFillDisabled","sliderTrackFill","sliderHandleFill","primaryA","sliderHandleFillDisabled","primary400","sliderHandleInnerFill","sliderTrackFillHover","sliderTrackFillActive","sliderTrackFillSelected","sliderTrackFillSelectedHover","sliderTrackFillSelectedActive","sliderTrackFillDisabled","sliderHandleFillHover","sliderHandleFillActive","sliderHandleFillSelected","sliderHandleFillSelectedHover","sliderHandleFillSelectedActive","sliderHandleInnerFillDisabled","sliderHandleInnerFillSelectedHover","sliderHandleInnerFillSelectedActive","sliderBorder","sliderBorderHover","sliderBorderDisabled","inputBorder","inputFill","inputFillError","inputFillDisabled","inputFillActive","inputFillPositive","positive50","inputTextDisabled","inputBorderError","inputBorderPositive","positive200","inputEnhancerFill","inputEnhancerFillDisabled","inputEnhancerTextDisabled","inputPlaceholder","inputPlaceholderDisabled","modalCloseColor","modalCloseColorHover","modalCloseColorFocus","paginationTriangleDown","headerNavigationFill","tabBarFill","tabColor","notificationPrimaryBackground","notificationPrimaryText","notificationInfoBackground","accent50","notificationInfoText","notificationPositiveBackground","notificationPositiveText","notificationWarningBackground","warning50","notificationWarningText","notificationNegativeBackground","notificationNegativeText","tagFontDisabledRampUnit","tagOutlinedDisabledRampUnit","tagSolidFontRampUnit","tagSolidRampUnit","tagOutlinedFontRampUnit","tagOutlinedRampUnit","tagSolidHoverRampUnit","tagSolidActiveRampUnit","tagSolidDisabledRampUnit","tagSolidFontHoverRampUnit","tagLightRampUnit","tagLightHoverRampUnit","tagLightActiveRampUnit","tagLightDisabledRampUnit","tagLightFontRampUnit","tagLightFontHoverRampUnit","tagOutlinedHoverRampUnit","tagOutlinedActiveRampUnit","tagOutlinedFontHoverRampUnit","tagNeutralFontDisabled","tagNeutralOutlinedDisabled","tagNeutralSolidFont","tagNeutralSolidBackground","black","tagNeutralOutlinedBackground","tagNeutralOutlinedFont","tagNeutralSolidHover","tagNeutralSolidActive","tagNeutralSolidDisabled","tagNeutralSolidFontHover","tagNeutralLightBackground","tagNeutralLightHover","tagNeutralLightActive","tagNeutralLightDisabled","tagNeutralLightFont","tagNeutralLightFontHover","tagNeutralOutlinedActive","tagNeutralOutlinedFontHover","tagNeutralOutlinedHover","tagPrimaryFontDisabled","tagPrimaryOutlinedDisabled","tagPrimarySolidFont","tagPrimarySolidBackground","tagPrimaryOutlinedFontHover","tagPrimaryOutlinedFont","tagPrimarySolidHover","tagPrimarySolidActive","tagPrimarySolidDisabled","tagPrimarySolidFontHover","tagPrimaryLightBackground","tagPrimaryLightHover","tagPrimaryLightActive","tagPrimaryLightDisabled","tagPrimaryLightFont","tagPrimaryLightFontHover","tagPrimaryOutlinedActive","tagPrimaryOutlinedHover","tagPrimaryOutlinedBackground","tagAccentFontDisabled","accent200","tagAccentOutlinedDisabled","tagAccentSolidFont","tagAccentSolidBackground","accent400","tagAccentOutlinedBackground","tagAccentOutlinedFont","tagAccentSolidHover","tagAccentSolidActive","accent100","tagAccentSolidDisabled","tagAccentSolidFontHover","accent500","tagAccentLightBackground","tagAccentLightHover","tagAccentLightActive","tagAccentLightDisabled","tagAccentLightFont","tagAccentLightFontHover","tagAccentOutlinedActive","accent600","tagAccentOutlinedFontHover","tagAccentOutlinedHover","tagPositiveFontDisabled","tagPositiveOutlinedDisabled","tagPositiveSolidFont","tagPositiveSolidBackground","positive400","tagPositiveOutlinedBackground","tagPositiveOutlinedFont","tagPositiveSolidHover","tagPositiveSolidActive","positive100","tagPositiveSolidDisabled","tagPositiveSolidFontHover","positive500","tagPositiveLightBackground","tagPositiveLightHover","tagPositiveLightActive","tagPositiveLightDisabled","tagPositiveLightFont","tagPositiveLightFontHover","tagPositiveOutlinedActive","positive600","tagPositiveOutlinedFontHover","tagPositiveOutlinedHover","tagWarningFontDisabled","warning300","tagWarningOutlinedDisabled","tagWarningSolidFont","warning700","tagWarningSolidBackground","warning400","tagWarningOutlinedBackground","tagWarningOutlinedFont","warning600","tagWarningSolidHover","tagWarningSolidActive","warning100","tagWarningSolidDisabled","tagWarningSolidFontHover","warning500","tagWarningLightBackground","tagWarningLightHover","tagWarningLightActive","tagWarningLightDisabled","tagWarningLightFont","tagWarningLightFontHover","tagWarningOutlinedActive","tagWarningOutlinedFontHover","tagWarningOutlinedHover","tagNegativeFontDisabled","tagNegativeOutlinedDisabled","tagNegativeSolidFont","tagNegativeSolidBackground","tagNegativeOutlinedBackground","tagNegativeOutlinedFont","tagNegativeSolidHover","tagNegativeSolidActive","tagNegativeSolidDisabled","tagNegativeSolidFontHover","tagNegativeLightBackground","tagNegativeLightHover","tagNegativeLightActive","tagNegativeLightDisabled","tagNegativeLightFont","tagNegativeLightFontHover","tagNegativeOutlinedActive","tagNegativeOutlinedFontHover","tagNegativeOutlinedHover","tableHeadBackgroundColor","tableBackground","tableStripedBackground","tableFilter","tableFilterHeading","tableFilterBackground","tableFilterFooterBackground","toastText","toastPrimaryBackground","toastPrimaryText","toastInfoBackground","toastInfoText","toastPositiveBackground","toastPositiveText","toastWarningBackground","toastWarningText","toastNegativeBackground","toastNegativeText","spinnerTrackFill","progressbarTrackFill","tooltipBackground","tooltipText","colorSecondary","backgroundAlt","backgroundInv","foregroundAlt","foregroundInv","border","borderAlt","borderFocus","borderError","negative","shadowFocus","shadowError","foundation","core","backgroundSecondary","backgroundInversePrimary","backgroundInverseSecondary","contentSecondary","contentTertiary","contentInversePrimary","contentInverseSecondary","contentInverseTertiary","borderOpaque","borderTransparent","borderSelected","borderInverseOpaque","borderInverseTransparent","borderInverseSelected","coreExtensions","backgroundStateDisabled","backgroundOverlayDark","backgroundOverlayLight","backgroundAccent","backgroundNegative","backgroundWarning","warning","backgroundPositive","backgroundLightAccent","backgroundLightNegative","backgroundLightWarning","backgroundLightPositive","backgroundAlwaysDark","backgroundAlwaysLight","contentStateDisabled","contentAccent","contentOnColor","contentOnColorInverse","contentNegative","contentWarning","contentPositive","borderStateDisabled","borderAccent","borderAccentLight","borderNegative","borderWarning","borderPositive","safety","eatsGreen400","freightBlue400","jumpRed400","rewardsTier1","rewardsTier2","rewardsTier3","rewardsTier4","membership","lightColorTokens","accent300","accent700","negative300","negative700","warning200","positive","positive300","positive700","rating200","rating400","ratingInactiveFill","ratingStroke","createLightTheme","primitives","primaryFontFamily","customColorTokens","colorTokens","timing100","timing300","timing400","timing500","timing600","timing800","timing900","timing1000","easeInOutCurve","easeInQuinticCurve","easeOutQuinticCurve","easeInOutQuinticCurve","border200","border300","border400","border500","border600","radius100","radius200","radius300","radius500","useRoundedCorners","inputBorderRadius","surfaceBorderRadius","tagBorderRadius","small","columns","gutters","gaps","maxWidth","shadow400","shadow500","shadow700","overlay0","overlay100","overlay200","overlay300","overlay400","overlay500","overlay600","shallowAbove","shallowBelow","deepAbove","deepBelow","scale650","scale750","scale850","scale950","scale1000","scale1200","scale1400","scale2400","scale3200","scale4800","defaultFontTokens","monoFontFamily","fontTokens","fontFamily","fontSize","fontWeight","font300","font400","font550","font650","font750","font850","font950","font1050","font1150","font1250","font1350","font1450","ParagraphXSmall","LabelXSmall","LabelSmall","LabelLarge","HeadingXSmall","HeadingMedium","HeadingLarge","HeadingXLarge","HeadingXXLarge","DisplayXSmall","DisplaySmall","DisplayMedium","DisplayLarge","MonoParagraphXSmall","MonoParagraphSmall","MonoParagraphMedium","MonoParagraphLarge","MonoLabelXSmall","MonoLabelSmall","MonoLabelMedium","MonoLabelLarge","MonoHeadingXSmall","MonoHeadingSmall","MonoHeadingMedium","MonoHeadingLarge","MonoHeadingXLarge","MonoHeadingXXLarge","MonoDisplayXSmall","MonoDisplaySmall","MonoDisplayMedium","MonoDisplayLarge","gray50","gray100","gray200","gray300","gray400","gray500","gray600","gray700","gray800","gray900","platinum50","platinum100","platinum200","platinum300","platinum400","platinum500","platinum600","platinum700","platinum800","red50","red100","red200","red300","red400","red500","red600","red700","orange50","orange100","orange200","orange300","orange400","orange500","orange600","orange700","yellow50","yellow100","yellow200","yellow300","yellow400","yellow500","yellow600","yellow700","green50","green100","green200","green300","green400","green500","green600","green700","blue50","blue100","blue200","blue300","blue400","blue500","blue600","blue700","cobalt50","cobalt100","cobalt200","cobalt300","cobalt400","cobalt500","cobalt600","cobalt700","purple50","purple100","purple200","purple300","purple400","purple500","purple600","purple700","brown50","brown100","brown200","brown300","brown400","brown500","brown600","brown700","deepMerge","isCloneable","initialized","hadKeyboardEvent","hadFocusVisibleRecently","inputTypesWhitelist","text","url","tel","email","password","number","date","month","week","time","datetime","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","matches","type","tagName","readOnly","isContentEditable","initFocusVisible","doc","forkFocus","forkBlur","_hyphenateStyleName2","_hyphenateStyleName","regex","FOCUS_GROUP","FOCUS_DISABLED","FOCUS_ALLOW","FOCUS_AUTO","uppercasePattern","msPattern","cache","toHyphenLower","hName","isUnextendable","val","extend","deep","Error","extenders","extender","factory","__webpack_modules__","__unused_webpack_exports","___CSS_LOADER_EXPORT___","___CSS_LOADER_API_IMPORT___","cssWithMappingToString","modules","dedupe","alreadyImportedModules","__unused_webpack_module","__webpack_exports__","MAILTO","MAILGO","TEL","CALLTO","SMS","MAILGO_MAIL","MAILGO_TEL","MAILGO_SMS","CLASSIC","LESS_SPAM","spanHTMLTag","aHTMLTag","pHTMLTag","notNumber","RegExp","leadingZeros","validateEmail","validateEmails","copyToClipboard","selected","getSelection","rangeCount","getRangeAt","execCommand","removeAllRanges","addRange","setFocusLoop","leaveLastLink","leaveFirstLink","code","shiftKey","closest","languages_namespaceObject","JSON","parse","translations_namespaceObject","strings","config","activeMailgoType","modalMailto","modalTel","lessSpamHref","mail","cc","bcc","subject","bodyMail","customActionText","customActionTitle","customActionUrl","msg","telegramUsername","skypeUsername","titleTel","detailCc","detailBcc","detailSubject","detailBody","detailMsg","ccValue","bccValue","subjectValue","bodyValue","msgValue","activatedLink","gmail","outlook","yahoo","mailgo_open","telegram","wa","skype","copyMail","copyTel","customAction","mailgoCSS","lang","defaultStrings","isMobile","mailtoEnabled","telEnabled","smsEnabled","desktopEnabled","mobileEnabled","validateEmailConfig","validateTelConfig","showFooterConfig","loadCSSConfig","mailgoInit","_config","_config2","desktop","mobile","mailgoSetLanguage","mailgoExists","getElementById","_config3","_config4","classList","add","dark","enableDarkMode","disableDarkMode","modalBackground","modalContent","details","ccSpan","createTextNode","cc_","bccSpan","bcc_","subjectSpan","subject_","bodySpan","body_","open_in_","gmailSpan","mailgoConfigAttributeEnabled","outlookSpan","yahooSpan","openSpan","open","_default","copy","showFooter","byElement","hideMailgo","mailgoTelExists","_config5","_config6","_modalBackground","_modalContent","detailsTel","msgSpan","telegramSpan","waSpan","whatsapp","skypeSpan","callSpan","_as_default","_mailgoClickListener","mailgoIsShowing","HTMLDocument","Window","localMailgoType","_getMailgoTypeByElement","_activeMailgoType","activeMailgoModalType","_mailgoPreRender","mailgoElementOrUrl","_activeMailgoType2","_activeMailgoType3","_config9","mailgoElement","maxLength","installation","getAttribute","_config7","_mailgoElement$getAtt","_mailgoElement$getAtt2","validateUrl","urlParams","searchParams","get","log","encodeURIComponent","parameters","buildLessSpamHref","_config8","_urlParams","_parameters","validateTel","hasAttribute","_mailgoRender","_mailgoDirectRender","directUrl","mailgo","_activeMailgoType4","textContent","openGmail","openOutlook","openYahooMail","openDefault","openCustomAction","openWhatsApp","openTelegram","openSkype","showMailgo","mailgoKeydown","_activeMailgoType5","urlString","gmailUrl","_config10","startingOutlookUrl","office365","outlookUrl","yahooUrl","tgUrl","skypeUrl","whatappTel","waUrl","_activeMailgoType6","_activeMailgoType7","activeCopy","copied","customActionUrlEncoded","regexValidate","_element$classList","_element$classList2","_element$classList3","linkElement","elementHref","keyboardEvent","_activeMailgoType8","setModalDisplay","getModalDisplay","by","rel","getModalHTMLElement","activeElement","_activeMailgoType9","_activeMailgoType10","remove","joinedParams","attribute","_config11","_config12","actions","_config13","_config14","_config15","languageType","htmlLang","language","_mailgoValidateEmail","mailgoConfig","_window","_config16","_config17","_config18","_config19","_config20","_config21","loadCSS","mailto","sms","mailgoCSSElement","head","mailgoStyle","initEvent","listenerOptions","getMailgoTypeByElement","mailgoClickListener","mailgoCheckRender","mailgoPreRender","mailgoDirectRender","mailgoRender","mailgoValidateEmail","src_mailgo","_start","_mailgoCheckRender","mailgo_lib","__webpack_module_cache__","moduleId","cachedModule","definition","toStringTag","t","defaults","expires","toUTCString","c","stringify","write","String","escape","cookie","read","set","getJSON","withConverter","resetWarningCache","array","bool","func","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","Cookies","OPTIONS","h","SAME_SITE_OPTIONS","C","VISIBLE_OPTIONS","T","getCookieConsentValue","S","resetCookieConsentValue","k","u","f","O","TOP","BOTTOM","NONE","STRICT","LAX","HIDDEN","SHOW","BY_COOKIE_VALUE","j","w","condition","B","valueOf","acceptOnScrollPercentage","accept","acceptOnScroll","handleScroll","visible","flexWrap","buttonStyle","borderRadius","flex","declineButtonStyle","contentStyle","overlayStyle","debug","getCookieValue","removeScrollListener","cookieName","cookieValue","hideOnAccept","onAccept","setCookie","acceptOnOverlayClick","onOverlayClick","declineCookieValue","hideOnDecline","onDecline","setDeclineCookie","extraCookieOptions","sameSite","cookieSecurity","secure","disableStyles","buttonText","declineButtonText","containerClasses","contentClasses","buttonClasses","buttonWrapperClasses","declineButtonClasses","buttonId","declineButtonId","disableButtonStyles","enableDeclineButton","flipButtons","ButtonComponent","overlay","overlayClasses","E","P","ariaAcceptLabel","D","ariaDeclineLabel","I","customContainerAttributes","customContentAttributes","A","customButtonProps","N","R","L","V","U","W","decline","overlayClick","propTypes","useMergeRefs","refs","defaultValue","initialValue","newValue","assignRef","useState","facade","last","hiddenGuard","InFocusGuard","emptyArray","FocusLock","parentRef","_extends2","_React$useState","realObserved","setObserved","isActive","originalFocusedElement","persistentFocus","crossFrame","group","allowTextSelection","whiteList","_props$shards","shards","_props$as","as","_props$lockProps","lockProps","containerProps","SideCar","sideCar","shouldReturnFocus","onActivationCallback","onActivation","onDeactivationCallback","onDeactivation","useEffect","allowDefer","returnFocusTo","howToReturnFocus","returnFocusOptions","setObserveNode","newObserved","hasLeadingGuards","hasTailingGuards","mergedRef","reducePropsToState","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","peek","_proto","componentDidMount","componentDidUpdate","componentWillUnmount","splice","render","PureComponent","getDisplayName","isRadio","correctNode","nodes","checked","findSelectedRadio","pickFirstFocus","pickFocusable","isVisibleUncached","checkParent","DOCUMENT_NODE","ELEMENT_NODE","getPropertyValue","isElementHidden","DOCUMENT_FRAGMENT_NODE","isVisibleCached","visibilityCache","cached","isGuard","dataset","focusGuard","isNotAGuard","isDefined","NEW_FOCUS","newFocus","innerNodes","outerNodes","lastNode","cnt","firstFocus","lastFocus","isOnGuard","resultSet","activeIndex","lastIndex","lastNodeInside","indexDiff","firstNodeIndex","lastNodeIndex","correctedNodes","Set","has","correctedIndexDiff","returnFirstNode","returnLastNode","abs","toArray","ret","asArray","getTopParent","getAllAffectedNodes","currentNode","contained","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","filterNested","querySelectorAll","tabSort","tabDiff","orderByTabIndex","filterNegative","keepGuards","queryTabbables","queryGuardTabbables","getFocusables","parents","withGuards","filterFocusable","notHiddenInput","getTabbableNodes","topNodes","getAllTabbableNodes","parentAutofocusables","topNode","parentFocus","getParents","getCommonParent","nodeA","nodeB","parentsA","parentsB","currentParent","getTopCommonParent","baseActiveElement","leftEntry","rightEntries","activeElements","leftEntries","topCommon","entry","subEntry","common","getFocusMerge","commonParent","Map","anyFocusable","innerElements","_a","srcNodes","dstNodes","remap","autoFocusables","orderedInnerElements","entity","newId","autoFocusable","allParentAutofocusables","autofocus","guardCount","lockDisabled","focusable","contentWindow","focusInsideIframe","isFreeFocus","lastActiveTrap","lastActiveFocus","lastPortaledElement","focusWasOutsideWindow","defaultWhitelist","autoGuard","startIndex","allNodes","lastGuard","guard","focusAutoGuard","lockItem","extractRef","activateTrap","_lastActiveTrap","workingNode","portaledElement","workingArea","focusWhitelisted","blur","newActiveElement","focusedIndex","onTrap","stopPropagation","currentTarget","observerNode","onWindowBlur","cb","propsList","traps","trap","lastTrap","sameTrap","FocusLockCombination","ItoI","innerCreateMedium","middleware","buffer","assigned","useMedium","assignSyncMedium","cbs","assignMedium","pendingQueue","executeQueue","cycle","_filter","createMedium","mediumFocus","mediumBlur","mediumEffect","mediumSidecar","async","ssr","createSidecarMedium","deferAction","setImmediate","inlineProp","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","flags","$$typeof","message","for","z","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","typeOf","ex","React","React__default","mapStateOnServer","rewind","recordedState","UNSAFE_componentWillMount","prefixId","uid","UID","quartz","idSource","_b","UIDReset","UIDConsumer","generateUID","WeakMap","createSource","getId","getPrefix","useUIDState","gen","useUID","useUIDSeed","capitalizeString","prefixProperty","prefixProperties","newStyle","requiredPrefixes","capitalizedProperty","styleProperty","prefixValue","plugins","metaData","processedValue","addIfNew","addNewValuesOnly","values","isObject","ms","wms","prefixMap","grab","grabbing","alternativeValues","wrap","alternativeProps","sliceIterator","isSimplePositionValue","isComplexSpanValue","includes","alignmentValues","displayValues","propertyConverters","msGridRowAlign","gridColumn","msGridColumn","_value$split","_value$split2","gridColumnStart","_end$split","_end$split2","maybeSpan","maybeNumber","gridColumnEnd","msGridColumnSpan","gridRow","msGridRow","_value$split3","_value$split4","gridRowStart","_end$split3","_end$split4","gridRowEnd","msGridRowSpan","gridTemplateColumns","msGridColumns","gridTemplateRows","msGridRows","justifySelf","msGridColumnAlign","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","properties","maxHeight","columnWidth","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","prefixMapping","Webkit","Moz","WebkitBoxOrient","WebkitBoxDirection","grad","propertyConverter","alternativePropList","propertyPrefixMap","outputValue","multipleValues","singleValue","dashCaseProperty","pLen","unshift","webkitOutput","mozOutput","combinedValue","_processedValue","createPrefixer","SequentialIDGenerator","prefix$$1","count","msb","power","increment","minMaxWidth","maxMinWidth","isMinWidth","_testQuery","isMaxWidth","minMaxHeight","maxMinHeight","isMinHeight","isMaxHeight","isPrint","isPrintOnly","maxValue","Number","MAX_VALUE","_getQueryLength","doubleTestTrue","doubleTestFalse","singleTest","sortCSSmq","testIsPrint","isPrintA","isPrintOnlyA","isPrintB","isPrintOnlyB","localeCompare","_testIsPrint","minA","maxA","minB","maxB","lengthA","lengthB","MultiCache","idGenerator","onNewCache","onNewValue","sortedCacheKeys","caches","getCache","_cache","Cache","keyIndex","insertBeforeMedia","getSortedCacheKeys","addValue","hyphenateStyleName","injectStylePrefixed","styleCache","media","pseudo","classString","originalKey","originalVal","propValPair","cachedId","_prefix","block","prefixed","prefixedKey","prefixedVal","prefixedValType","prefixedPair","hyphenated","_prefixedPair","substring","atomicSelector","selector","keyframesToBlock","keyframes","animationState","declarationsToBlock","keyframesBlockToRule","fontFaceBlockToRule","styleBlockToRule","STYLES_HYDRATOR","KEYFRAMES_HYRDATOR","FONT_FACE_HYDRATOR","hydrateStyles","hydrator","_match","fullKey","hydrate","_match2","StyletronClient","opts","styleElements","styleIdGenerator","onNewStyle","sheet","rule","insertRule","cssRules","styleElement","insertBeforeIndex","findSheetIndexWithMedia","keyframesCache","fontFaceCache","hydrateType","renderStyle","renderFontFace","fontFace","renderKeyframes","StyletronServer","styleRules","fontFaceRules","keyframesRules","getStylesheets","attrs","sheets","cacheKey","sheetify","getStylesheetsHtml","_sheet$attrs","originalClassName","class","rest","attrsToString","generateHtmlString","getCss","rules","attr","DebugEngine","BrowserDebugEngine","worker","workerBlob","Blob","Worker","createObjectURL","postMessage","interval","onmessage","_msg$data","stackIndex","stackInfo","noopEngine","StyletronContext","createContext","HydrationContext","DebugEngineContext","checkNoopEngine","engine","styletronEngine","useContext","useRef","getInitialStyle$$1","driver$$1","styleArg","createStyledElementComponent","autoComposeShallow","reducers","Component$$1","withTransform","transformer","composeDynamic","withStyle","withStyleDeep","autoComposeDeep","styletron","dynamicComposeShallow","staticComposeShallow","dynamicComposeDeep","staticComposeDeep","composeStatic","createShallowMergeReducer","createDeepMergeReducer","styleFn","shallowMerge","reducer","inputStyle","assignmentCommutative","reducerContainer","composed","ext","forwardRef","elementProps","omitPrefixedKeys","resolveStyle","styleClassString","$as","$ref","Wrapped","tx","renderDeclarativeRules","_iterator","_isArray","_font","_extendStatics","__extends","__","_assign","_interopRequireDefault","withPrefix","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","_excluded","isAbsolutePath","getGlobalBasePrefix","isLocalLink","endsWith","rewriteLinkPath","relativeTo","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","GatsbyLinkLocationWrapper","Location","GatsbyLink","_location","defaultGetProps","isPartiallyCurrent","isCurrent","IOSupported","IntersectionObserver","abortPrefetch","handleRef","_prefetch","currentPath","rewrittenPath","parsed","newPathName","___loader","enqueue","io","_this$io","abort","unobserve","disconnect","inViewPort","isIntersecting","intersectionRatio","observe","_this$props$getProps","getProps","_onClick","_onMouseEnter","prefixedTo","Link","hovering","button","defaultPrevented","shouldReplace","___navigate","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","desc","_interopRequireWildcard","_sessionStorage","cacheBabelInterop","cacheNodeInterop","SessionStorage","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","_saveScroll","windowScroll","shouldUpdateScroll","scrollTo","scrollToHash","scrollIntoView","prevRouterProps","routerProps","save","scrollPosition","_this$props$location","_this$props$location2","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","storedValue","setItem","stateKeyBase","identifier","useLocation","useLayoutEffect","onScroll","components","plugin","require","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","results","previous","all","on","off","emit","mitt","pathAndSearch","pathCache","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","graphql","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","reject","link","onload","onerror","getElementsByTagName","getElementsByName","req","XMLHttpRequest","status","send","preFetched","catch","PageResourceStatus","Success","preferDefault","createPageDataUrl","rawPath","maybeSearch","doFetch","method","onreadystatechange","readyState","toPageResources","pageData","page","componentChunkName","webpackCompilationHash","staticQueryHashes","getServerDataError","json","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","isPrefetchQueueRunning","prefetchQueued","prefetchTriggered","prefetchCompleted","memoizedGet","inFlightPromise","response","delete","setApiRunner","apiRunner","prefetchDisabled","fetchPageDataJson","loadObj","pagePath","retries","responseText","jsonPayload","payload","notFound","internalServerError","loadPageDataJson","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","defer","promise","abortC","AbortController","signal","_processNextPrefetchBatch","requestIdleCallback","toPrefetch","prefetches","dPromise","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","clip","maybeRedirect","___replace","nextRoute","reason","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","___webpackCompilationHash","serviceWorker","controller","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","pageName","pageHeadings","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","shallowDiffers","EnsureResources","getDerivedStateFromProps","loadResources","nextState","___emitter","___push","reloadStorageKey","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","browserLoc","getSessionStorage","reload","removeItem","SiteRoot","App","onClientEntryRanRef","performance","mark","renderer","ReactDOM","runRender","rootElement","doScroll","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","redirects","ignoreCase","fromPath","register","reg","installingWorker","installing","___failedResources","full","SIZE_DIMENSION","CLOSE_SOURCE","ANCHOR","getAnchorStyles","$anchor","$isVisible","sizeStyles","getSizeStyles","StyledBackdrop","$animating","$showBackdrop","WebkitTapHighlightColor","touchAction","StyledDrawerContainer","StyledDrawerBody","StyledClose","dir","CloseIcon","Drawer","isVisible","mounted","closeable","triggerClose","onBackdropClick","resetMountNodeScroll","didOpen","didClose","showBackdrop","getMountNode","lastMountNodeOverflowStyle","lastStyle","animateStartTimer","getRef","disableMountNodeScroll","animateOutComplete","onClose","closeSource","animate","$closeable","_refs","RootOverride","DrawerContainerOverride","DrawerContainer","DrawerBodyOverride","DrawerBody","BackdropOverride","Backdrop","CloseOverride","Close","backdropProps","drawerContainerProps","drawerBodyProps","_getOverrides10","closeProps","onCloseClick","getChildren","renderDrawer","rx","MenuAdapter","menuLinks","setIsOpen","Header","siteTitle","clock","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","encode","getTitleFromPropsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","tag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","tags","headElement","tagNodes","indexToDelete","newElement","innerHTML","styleSheet","cssText","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","meta","noscript","script","HelmetSideEffects","HelmetExport","HelmetWrapper","inherits","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","defaultTitle","titleTemplate","mappedState","renderStatic","heroLogo","site","siteMetadata","SectionContainer","fullwidth","xmlns","disableStr","createTheme","Styletron","getElementsByClassName","wrapRootElement","wrapPageElement","pluginOptions","gtag","excludeGtagPaths","sendPageView","page_path","onInitialClientRender","_gatsby","enableDebug","debugMode","debugAfterHydration","createNamedContext","Ctx","LocationContext","LocationProvider","getContext","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","ServerLocation","baseContext","locationContext","RouterImpl","_navigate2","_props$component","domProps","createRoute","clone","FocusWrapper","FocusHandler","wrapperProps","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","shouldFocus","myURIChanged","navigatedUpToMe","_this5","_props2","_props2$component","Comp","_props$getProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","Match","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","format","argIndex","framesToPop","Surfboardwhite","_inheritsLoose","arrayLikeToArray","unsupportedIterableToArray"],"sourceRoot":""}