{"version":3,"sources":["webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack:///./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/@tti/image-transform/dist/esm/ImageTransform.js","webpack:///./node_modules/@tti/image-transform/dist/esm/index.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/framer-motion/dist/es/render/dom/features-animation.mjs","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs","webpack:///./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack:///./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs"],"names":["g","this","Function","e","window","module","exports","hasPassiveEvents","passiveTestOptions","addEventListener","removeEventListener","isIosDevice","navigator","platform","test","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","el","some","lock","options","preventDefault","rawEvent","event","target","touches","length","restoreOverflowSetting","undefined","document","body","style","paddingRight","overflow","disableBodyScroll","targetElement","concat","arr","Array","isArray","i","arr2","from","_toConsumableArray","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","passive","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","clientWidth","setOverflowHidden","console","error","clearAllBodyScrollLocks","forEach","enableBodyScroll","filter","useIsMounted","isMounted","useRef","useIsomorphicLayoutEffect","current","useForceUpdate","_a","__read","useState","forcedRenderCount","setForcedRenderCount","forceRender","useCallback","sync","postRender","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","clearTimeout","cancel","flush","FormatMode","imageUrl","_params","split","_imageUrl","queries","query","push","join","key","value","toString","width","addParameter","height","mode","url","Symbol","domAnimation","__assign","renderer","createDomVisualElement","animations","gestureAnimations","freeGlobal","freeSelf","self","Object","root","baseGetTag","isObjectLike","type","decode","parse","encode","stringify","hasOwnProperty","obj","prop","prototype","call","qs","sep","eq","regexp","maxKeys","len","kstr","vstr","k","v","x","replace","idx","indexOf","substr","decodeURIComponent","xs","stringifyPrimitive","isFinite","name","map","objectKeys","ks","encodeURIComponent","f","res","keys","global","getRawTag","objectToString","symToStringTag","toStringTag","objectProto","nativeObjectToString","isOwn","tag","unmasked","Date","isSymbol","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","slice","LazyMotion","children","features","_b","strict","setIsLoaded","isLazyBundle","loadedRenderer","loadedFeatures","__rest","loadFeatures","useEffect","then","React","LazyContext","Provider","m","createMotionProxy","createDomMotionConfig","PresenceChild","initial","isPresent","onExitComplete","custom","presenceAffectsLayout","presenceChildren","useConstant","newChildrenMap","id","useId","context","useMemo","childId","e_1","set","__values","values","_c","next","done","e_1_1","return","register","delete","_","size","PresenceContext","Map","getChildKey","child","isDev","process","env","NODE_ENV","AnimatePresence","exitBeforeEnter","forceRenderLayoutGroup","useContext","LayoutGroupContext","filteredChildren","filtered","Children","isValidElement","onlyElements","childrenToRender","exiting","Set","presentChildren","allChildren","isInitialRender","seenChildren","has","warn","add","updateChildLookup","useUnmountEffect","clear","__spreadArray","presentKeys","targetKeys","numPresent","get","insertionIndex","splice","removeIndex","findIndex","presentChild","cloneElement"],"mappings":"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","file":"18-2c53e5d91b35a01690d1.js","sourcesContent":["var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n var isMounted = useRef(false);\n useIsomorphicLayoutEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import { __read } from 'tslib';\nimport sync from 'framesync';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n var isMounted = useIsMounted();\n var _a = __read(useState(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];\n var forceRender = useCallback(function () {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n var deferredForceRender = useCallback(function () { return sync.postRender(forceRender); }, [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","export var FormatMode;\r\n(function (FormatMode) {\r\n FormatMode[\"Pad\"] = \"pad\";\r\n FormatMode[\"BoxPad\"] = \"boxpad\";\r\n FormatMode[\"Crop\"] = \"crop\";\r\n FormatMode[\"Min\"] = \"min\";\r\n FormatMode[\"Max\"] = \"max\";\r\n FormatMode[\"Stretch\"] = \"stretch\";\r\n})(FormatMode || (FormatMode = {}));\r\nclass ImageTransform {\r\n constructor(imageUrl) {\r\n this._params = [];\r\n // Check if the url has an existing params and pass them into _params first\r\n const split = imageUrl.split('?');\r\n // This means it's got multiple ? in and I'm not dealing with that\r\n if (split.length > 2) {\r\n this._imageUrl = split[0];\r\n return;\r\n }\r\n // If we have a querystring\r\n if (split.length > 1) {\r\n // Split the querystring on &\r\n const queries = split[1].split('&');\r\n // Loop through and add them\r\n for (const query of queries) {\r\n this._params.push(query);\r\n }\r\n }\r\n this._imageUrl = split[0];\r\n }\r\n get url() {\r\n return `${this._imageUrl}?${this._params.join('&')}`;\r\n }\r\n addParameter(key, value) {\r\n if (this._imageUrl.length === 0) {\r\n return;\r\n }\r\n this._params.push(`${key}=${value.toString()}`);\r\n }\r\n width(width) {\r\n this.addParameter('width', width);\r\n return this;\r\n }\r\n height(height) {\r\n this.addParameter('height', height);\r\n return this;\r\n }\r\n mode(mode) {\r\n this.addParameter('mode', mode);\r\n return this;\r\n }\r\n entropyCrop() {\r\n this.addParameter('entropycrop', 1);\r\n return this;\r\n }\r\n toString() {\r\n return this.url;\r\n }\r\n}\r\nexport default ImageTransform;\r\n","import ImageTransform, { FormatMode } from './ImageTransform';\r\nexport default ImageTransform;\r\nexport { FormatMode };\r\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","import { __assign } from 'tslib';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\n\n/**\n * @public\n */\nvar domAnimation = __assign(__assign({ renderer: createDomVisualElement }, animations), gestureAnimations);\n\nexport { domAnimation };\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","import { __read, __rest } from 'tslib';\nimport * as React from 'react';\nimport { useState, useRef, useEffect } from 'react';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { loadFeatures } from '../../motion/features/definitions.mjs';\n\n/**\n * Used in conjunction with the `m` component to reduce bundle size.\n *\n * `m` is a version of the `motion` component that only loads functionality\n * critical for the initial render.\n *\n * `LazyMotion` can then be used to either synchronously or asynchronously\n * load animation and gesture support.\n *\n * ```jsx\n * // Synchronous loading\n * import { LazyMotion, m, domAnimations } from \"framer-motion\"\n *\n * function App() {\n * return (\n * \n * \n * \n * )\n * }\n *\n * // Asynchronous loading\n * import { LazyMotion, m } from \"framer-motion\"\n *\n * function App() {\n * return (\n * import('./path/to/domAnimations')}>\n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction LazyMotion(_a) {\n var children = _a.children, features = _a.features, _b = _a.strict, strict = _b === void 0 ? false : _b;\n var _c = __read(useState(!isLazyBundle(features)), 2), setIsLoaded = _c[1];\n var loadedRenderer = useRef(undefined);\n /**\n * If this is a synchronous load, load features immediately\n */\n if (!isLazyBundle(features)) {\n var renderer = features.renderer, loadedFeatures = __rest(features, [\"renderer\"]);\n loadedRenderer.current = renderer;\n loadFeatures(loadedFeatures);\n }\n useEffect(function () {\n if (isLazyBundle(features)) {\n features().then(function (_a) {\n var renderer = _a.renderer, loadedFeatures = __rest(_a, [\"renderer\"]);\n loadFeatures(loadedFeatures);\n loadedRenderer.current = renderer;\n setIsLoaded(true);\n });\n }\n }, []);\n return (React.createElement(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict: strict } }, children));\n}\nfunction isLazyBundle(features) {\n return typeof features === \"function\";\n}\n\nexport { LazyMotion };\n","import { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\n\n/**\n * @public\n */\nvar m = createMotionProxy(createDomMotionConfig);\n\nexport { m };\n","import { __values } from 'tslib';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useId } from '../../utils/use-id.mjs';\n\nvar PresenceChild = function (_a) {\n var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;\n var presenceChildren = useConstant(newChildrenMap);\n var id = useId();\n var context = useMemo(function () { return ({\n id: id,\n initial: initial,\n isPresent: isPresent,\n custom: custom,\n onExitComplete: function (childId) {\n var e_1, _a;\n presenceChildren.set(childId, true);\n try {\n for (var _b = __values(presenceChildren.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var isComplete = _c.value;\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete();\n },\n register: function (childId) {\n presenceChildren.set(childId, false);\n return function () { return presenceChildren.delete(childId); };\n },\n }); }, \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(function () {\n presenceChildren.forEach(function (_, key) { return presenceChildren.set(key, false); });\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(function () {\n !isPresent && !presenceChildren.size && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());\n }, [isPresent]);\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { __read, __spreadArray } from 'tslib';\nimport * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport process from '../../utils/process.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\n\nvar getChildKey = function (child) { return child.key || \"\"; };\nvar isDev = process.env.NODE_ENV !== \"production\";\nfunction updateChildLookup(children, allChildren) {\n var seenChildren = isDev ? new Set() : null;\n children.forEach(function (child) {\n var key = getChildKey(child);\n if (isDev && seenChildren && seenChildren.has(key)) {\n console.warn(\"Children of AnimatePresence require unique keys. \\\"\".concat(key, \"\\\" is a duplicate.\"));\n seenChildren.add(key);\n }\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n var filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, function (child) {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nvar AnimatePresence = function (_a) {\n var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n var _d = __read(useForceUpdate(), 1), forceRender = _d[0];\n var forceRenderLayoutGroup = useContext(LayoutGroupContext).forceRender;\n if (forceRenderLayoutGroup)\n forceRender = forceRenderLayoutGroup;\n var isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n var filteredChildren = onlyElements(children);\n var childrenToRender = filteredChildren;\n var exiting = new Set();\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n var presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n var allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n var isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(function () {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(function () {\n isInitialRender.current = true;\n allChildren.clear();\n exiting.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map(function (child) { return (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = __spreadArray([], __read(childrenToRender), false);\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n var presentKeys = presentChildren.current.map(getChildKey);\n var targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n var numPresent = presentKeys.length;\n for (var i = 0; i < numPresent; i++) {\n var key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (exitBeforeEnter && exiting.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exiting.forEach(function (key) {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n var child = allChildren.get(key);\n if (!child)\n return;\n var insertionIndex = presentKeys.indexOf(key);\n var onExit = function () {\n allChildren.delete(key);\n exiting.delete(key);\n // Remove this child from the present children\n var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map(function (child) {\n var key = child.key;\n return exiting.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n exitBeforeEnter &&\n childrenToRender.length > 1) {\n console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n }\n return (React.createElement(React.Fragment, null, exiting.size\n ? childrenToRender\n : childrenToRender.map(function (child) { return cloneElement(child); })));\n};\n\nexport { AnimatePresence };\n"],"sourceRoot":""}