{"version":3,"file":"static/js/main.aab35ddb.js","mappings":"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","sources":["../node_modules/react-device-detect/dist/lib.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/proxy-compare/src/index.ts","../node_modules/valtio/esm/vanilla.mjs","../node_modules/valtio/esm/react.mjs","utils/windowSize.jsx","data.jsx","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/utils/mix.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix-color.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/utils/mix-complex.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/create-accelerated-animation.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs","../node_modules/framer-motion/dist/es/animation/animators/instant.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/debug/record.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","pages/Homepage.jsx","App.jsx","reportWebVitals.js","index.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction 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\nfunction _objectSpread2(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 _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (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 _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 _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 _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 _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 _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 _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 _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 _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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 _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++) arr2[i] = arr[i];\n\n return arr2;\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\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/* UAParser.js v1.0.36\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.36\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=350;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",VIERA=\"Viera\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","/**\n * @license React\n * use-sync-external-store-shim.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';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"2c5b3406\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"ukrainian_start:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"./\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkukrainian_start\"] = self[\"webpackChunkukrainian_start\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\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}","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 unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _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}","// symbols\nconst TRACK_MEMO_SYMBOL = Symbol();\nconst GET_ORIGINAL_SYMBOL = Symbol();\n\n// properties\nconst AFFECTED_PROPERTY = 'a';\nconst IS_TARGET_COPIED_PROPERTY = 'f';\nconst PROXY_PROPERTY = 'p';\nconst PROXY_CACHE_PROPERTY = 'c';\nconst TARGET_CACHE_PROPERTY = 't';\nconst NEXT_OBJECT_PROPERTY = 'n';\nconst CHANGED_PROPERTY = 'g';\nconst HAS_KEY_PROPERTY = 'h';\nconst ALL_OWN_KEYS_PROPERTY = 'w';\nconst HAS_OWN_KEY_PROPERTY = 'o';\nconst KEYS_PROPERTY = 'k';\n\n// function to create a new bare proxy\nlet newProxy = (\n target: T,\n handler: ProxyHandler,\n) => new Proxy(target, handler);\n\n// get object prototype\nconst getProto = Object.getPrototypeOf;\n\nconst objectsToTrack = new WeakMap();\n\n// check if obj is a plain object or an array\nconst isObjectToTrack = (obj: T): obj is T extends object ? T : never => (\n obj && (objectsToTrack.has(obj as unknown as object)\n ? objectsToTrack.get(obj as unknown as object) as boolean\n : (getProto(obj) === Object.prototype || getProto(obj) === Array.prototype)\n )\n);\n\n// check if it is object\nconst isObject = (x: unknown): x is object => (\n typeof x === 'object' && x !== null\n);\n\n// Properties that are both non-configurable and non-writable will break\n// the proxy get trap when we try to return a recursive/child compare proxy\n// from them. We can avoid this by making a copy of the target object with\n// all descriptors marked as configurable, see `copyTargetObject`.\n// See: https://github.com/dai-shi/proxy-compare/pull/8\nconst needsToCopyTargetObject = (obj: object) => (\n Object.values(Object.getOwnPropertyDescriptors(obj)).some(\n (descriptor) => !descriptor.configurable && !descriptor.writable,\n )\n);\n\n// Make a copy with all descriptors marked as configurable.\nconst copyTargetObject = (obj: T): T => {\n if (Array.isArray(obj)) {\n // Arrays need a special way to copy\n return Array.from(obj) as T;\n }\n // For non-array objects, we create a new object keeping the prototype\n // with changing all configurable options (otherwise, proxies will complain)\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n Object.values(descriptors).forEach((desc) => { desc.configurable = true; });\n return Object.create(getProto(obj), descriptors);\n};\n\ntype HasKeySet = Set\ntype HasOwnKeySet = Set\ntype KeysSet = Set\ntype Used = {\n [HAS_KEY_PROPERTY]?: HasKeySet;\n [ALL_OWN_KEYS_PROPERTY]?: true;\n [HAS_OWN_KEY_PROPERTY]?: HasOwnKeySet;\n [KEYS_PROPERTY]?: KeysSet;\n};\ntype Affected = WeakMap;\ntype ProxyHandlerState = {\n readonly [IS_TARGET_COPIED_PROPERTY]: boolean;\n [PROXY_PROPERTY]?: T;\n [PROXY_CACHE_PROPERTY]?: ProxyCache | undefined;\n [TARGET_CACHE_PROPERTY]?: TargetCache | undefined;\n [AFFECTED_PROPERTY]?: Affected;\n}\ntype ProxyCache = WeakMap<\n object,\n readonly [ProxyHandler, ProxyHandlerState]\n>;\ntype TargetCache = WeakMap<\n object,\n readonly [target: T, copiedTarget?: T]\n>;\n\nconst createProxyHandler = (origObj: T, isTargetCopied: boolean) => {\n const state: ProxyHandlerState = {\n [IS_TARGET_COPIED_PROPERTY]: isTargetCopied,\n };\n let trackObject = false; // for trackMemo\n const recordUsage = (\n type:\n | typeof HAS_KEY_PROPERTY\n | typeof ALL_OWN_KEYS_PROPERTY\n | typeof HAS_OWN_KEY_PROPERTY\n | typeof KEYS_PROPERTY,\n key?: string | symbol,\n ) => {\n if (!trackObject) {\n let used = (state[AFFECTED_PROPERTY] as Affected).get(origObj);\n if (!used) {\n used = {};\n (state[AFFECTED_PROPERTY] as Affected).set(origObj, used);\n }\n if (type === ALL_OWN_KEYS_PROPERTY) {\n used[ALL_OWN_KEYS_PROPERTY] = true;\n } else {\n let set = used[type];\n if (!set) {\n set = new Set();\n used[type] = set;\n }\n set.add(key as string | symbol);\n }\n }\n };\n const recordObjectAsUsed = () => {\n trackObject = true;\n (state[AFFECTED_PROPERTY] as Affected).delete(origObj);\n };\n const handler: ProxyHandler = {\n get(target, key) {\n if (key === GET_ORIGINAL_SYMBOL) {\n return origObj;\n }\n recordUsage(KEYS_PROPERTY, key);\n return createProxy(\n Reflect.get(target, key),\n (state[AFFECTED_PROPERTY] as Affected),\n state[PROXY_CACHE_PROPERTY],\n state[TARGET_CACHE_PROPERTY],\n );\n },\n has(target, key) {\n if (key === TRACK_MEMO_SYMBOL) {\n recordObjectAsUsed();\n return true;\n }\n recordUsage(HAS_KEY_PROPERTY, key);\n return Reflect.has(target, key);\n },\n getOwnPropertyDescriptor(target, key) {\n recordUsage(HAS_OWN_KEY_PROPERTY, key);\n return Reflect.getOwnPropertyDescriptor(target, key);\n },\n ownKeys(target) {\n recordUsage(ALL_OWN_KEYS_PROPERTY);\n return Reflect.ownKeys(target);\n },\n };\n if (isTargetCopied) {\n handler.set = handler.deleteProperty = () => false;\n }\n return [handler, state] as const;\n};\n\nconst getOriginalObject = (obj: T) => (\n // unwrap proxy\n (obj as { [GET_ORIGINAL_SYMBOL]?: typeof obj })[GET_ORIGINAL_SYMBOL]\n // otherwise\n || obj\n);\n\n/**\n * Create a proxy.\n *\n * This function will create a proxy at top level and proxy nested objects as you access them,\n * in order to keep track of which properties were accessed via get/has proxy handlers:\n *\n * NOTE: Printing of WeakMap is hard to inspect and not very readable\n * for this purpose you can use the `affectedToPathList` helper.\n *\n * @param {object} obj - Object that will be wrapped on the proxy.\n * @param {WeakMap} affected -\n * WeakMap that will hold the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [proxyCache] -\n * WeakMap that will help keep referential identity for proxies.\n * @returns {Proxy} - Object wrapped in a proxy.\n *\n * @example\n * import { createProxy } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n * const proxy = createProxy(original, affected);\n *\n * proxy.a // Will mark as used and track its value.\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"a\"\n *\n * proxy.d // Will mark \"d\" as accessed to track and proxy itself ({ e: \"3\" }).\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"d\"\n */\nexport const createProxy = (\n obj: T,\n affected: WeakMap,\n proxyCache?: WeakMap,\n targetCache?: WeakMap,\n): T => {\n if (!isObjectToTrack(obj)) return obj;\n let targetAndCopied = (\n targetCache && (targetCache as TargetCache).get(obj)\n );\n if (!targetAndCopied) {\n const target = getOriginalObject(obj);\n if (needsToCopyTargetObject(target)) {\n targetAndCopied = [target, copyTargetObject(target)];\n } else {\n targetAndCopied = [target];\n }\n targetCache?.set(obj, targetAndCopied);\n }\n const [target, copiedTarget] = targetAndCopied;\n let handlerAndState = (\n proxyCache && (proxyCache as ProxyCache).get(target)\n );\n if (\n !handlerAndState\n || handlerAndState[1][IS_TARGET_COPIED_PROPERTY] !== !!copiedTarget\n ) {\n handlerAndState = createProxyHandler(target, !!copiedTarget);\n handlerAndState[1][PROXY_PROPERTY] = newProxy(\n copiedTarget || target,\n handlerAndState[0],\n );\n if (proxyCache) {\n proxyCache.set(target, handlerAndState);\n }\n }\n handlerAndState[1][AFFECTED_PROPERTY] = affected as Affected;\n handlerAndState[1][PROXY_CACHE_PROPERTY] = proxyCache as ProxyCache | undefined;\n handlerAndState[1][TARGET_CACHE_PROPERTY] = targetCache as TargetCache | undefined;\n return handlerAndState[1][PROXY_PROPERTY] as typeof target;\n};\n\nconst isAllOwnKeysChanged = (prevObj: object, nextObj: object) => {\n const prevKeys = Reflect.ownKeys(prevObj);\n const nextKeys = Reflect.ownKeys(nextObj);\n return prevKeys.length !== nextKeys.length\n || prevKeys.some((k, i) => k !== nextKeys[i]);\n};\n\ntype ChangedCache = WeakMap;\n\n/**\n * Compare changes on objects.\n *\n * This will compare the affected properties on tracked objects inside the proxy\n * to check if there were any changes made to it,\n * by default if no property was accessed on the proxy it will attempt to do a\n * reference equality check for the objects provided (Object.is(a, b)). If you access a property\n * on the proxy, then isChanged will only compare the affected properties.\n *\n * @param {object} prevObj - The previous object to compare.\n * @param {object} nextObj - Object to compare with the previous one.\n * @param {WeakMap} affected -\n * WeakMap that holds the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [cache] -\n * WeakMap that holds a cache of the comparisons for better performance with repetitive comparisons,\n * and to avoid infinite loop with circular structures.\n * @returns {boolean} - Boolean indicating if the affected property on the object has changed.\n *\n * @example\n * import { createProxy, isChanged } from 'proxy-compare';\n *\n * const obj = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(obj, affected);\n *\n * proxy.a\n *\n * isChanged(obj, { a: \"1\" }, affected) // false\n *\n * proxy.a = \"2\"\n *\n * isChanged(obj, { a: \"1\" }, affected) // true\n */\n\nexport const isChanged = (\n prevObj: unknown,\n nextObj: unknown,\n affected: WeakMap,\n cache?: WeakMap,\n): boolean => {\n if (Object.is(prevObj, nextObj)) {\n return false;\n }\n if (!isObject(prevObj) || !isObject(nextObj)) return true;\n const used = (affected as Affected).get(getOriginalObject(prevObj));\n if (!used) return true;\n if (cache) {\n const hit = (cache as ChangedCache).get(prevObj);\n if (hit && hit[NEXT_OBJECT_PROPERTY] === nextObj) {\n return hit[CHANGED_PROPERTY];\n }\n // for object with cycles\n (cache as ChangedCache).set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: false,\n });\n }\n let changed: boolean | null = null;\n try {\n for (const key of used[HAS_KEY_PROPERTY] || []) {\n changed = Reflect.has(prevObj, key) !== Reflect.has(nextObj, key);\n if (changed) return changed;\n }\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n changed = isAllOwnKeysChanged(prevObj, nextObj);\n if (changed) return changed;\n } else {\n for (const key of used[HAS_OWN_KEY_PROPERTY] || []) {\n const hasPrev = !!Reflect.getOwnPropertyDescriptor(prevObj, key);\n const hasNext = !!Reflect.getOwnPropertyDescriptor(nextObj, key);\n changed = hasPrev !== hasNext;\n if (changed) return changed;\n }\n }\n for (const key of used[KEYS_PROPERTY] || []) {\n changed = isChanged(\n (prevObj as any)[key],\n (nextObj as any)[key],\n affected,\n cache,\n );\n if (changed) return changed;\n }\n if (changed === null) changed = true;\n return changed;\n } finally {\n if (cache) {\n cache.set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: changed,\n });\n }\n }\n};\n\n// explicitly track object with memo\nexport const trackMemo = (obj: unknown) => {\n if (isObjectToTrack(obj)) {\n return TRACK_MEMO_SYMBOL in obj;\n }\n return false;\n};\n\n/**\n * Unwrap proxy to get the original object.\n *\n * Used to retrieve the original object used to create the proxy instance with `createProxy`.\n *\n * @param {Proxy} obj - The proxy wrapper of the originial object.\n * @returns {object | null} - Return either the unwrapped object if exists.\n *\n * @example\n * import { createProxy, getUntracked } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n * const originalFromProxy = getUntracked(proxy)\n *\n * Object.is(original, originalFromProxy) // true\n * isChanged(original, originalFromProxy, affected) // false\n */\nexport const getUntracked = (obj: T): T | null => {\n if (isObjectToTrack(obj)) {\n return (obj as { [GET_ORIGINAL_SYMBOL]?: T })[GET_ORIGINAL_SYMBOL] || null;\n }\n return null;\n};\n\n/**\n * Mark object to be tracked.\n *\n * This function marks an object that will be passed into `createProxy`\n * as marked to track or not. By default only Array and Object are marked to track,\n * so this is useful for example to mark a class instance to track or to mark a object\n * to be untracked when creating your proxy.\n *\n * @param obj - Object to mark as tracked or not.\n * @param mark - Boolean indicating whether you want to track this object or not.\n * @returns - No return.\n *\n * @example\n * import { createProxy, markToTrack, isChanged } from 'proxy-compare';\n *\n * const nested = { e: \"3\" }\n *\n * markToTrack(nested, false)\n *\n * const original = { a: \"1\", c: \"2\", d: nested };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n *\n * proxy.d.e\n *\n * isChanged(original, { d: { e: \"3\" } }, affected) // true\n */\nexport const markToTrack = (obj: object, mark = true) => {\n objectsToTrack.set(obj, mark);\n};\n\n/**\n * Convert `affected` to path list\n *\n * `affected` is a weak map which is not printable.\n * This function is can convert it to printable path list.\n * It's for debugging purpose.\n *\n * @param obj - An object that is used with `createProxy`.\n * @param affected - A weak map that is used with `createProxy`.\n * @param onlyWithValues - An optional boolean to exclude object getters.\n * @returns - An array of paths.\n */\nexport const affectedToPathList = (\n obj: unknown,\n affected: WeakMap,\n onlyWithValues?: boolean,\n) => {\n const list: (string | symbol)[][] = [];\n const seen = new WeakSet();\n const walk = (x: unknown, path?: (string | symbol)[]) => {\n if (seen.has(x as object)) {\n // for object with cycles\n return;\n }\n if (isObject(x)) {\n seen.add(x);\n }\n const used = isObject(x) && (affected as Affected).get(getOriginalObject(x));\n if (used) {\n used[HAS_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:has(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n const segment = ':ownKeys';\n list.push(path ? [...path, segment] : [segment]);\n } else {\n used[HAS_OWN_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:hasOwn(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n }\n used[KEYS_PROPERTY]?.forEach((key) => {\n if (!onlyWithValues || 'value' in (Object.getOwnPropertyDescriptor(x, key) || {})) {\n walk((x as any)[key], path ? [...path, key] : [key]);\n }\n });\n } else if (path) {\n list.push(path);\n }\n };\n walk(obj);\n return list;\n};\n\n/**\n * replace newProxy function.\n *\n * This can be used if you want to use proxy-polyfill.\n * Note that proxy-polyfill can't polyfill everything.\n * Use it at your own risk.\n */\nexport const replaceNewProxy = (fn: typeof newProxy) => {\n newProxy = fn;\n};\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const desc = {\n value,\n enumerable: true,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return Object.preventExtensions(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","import ReactExports, { useRef, useCallback, useEffect, useMemo, useDebugValue } from 'react';\nimport { isChanged, createProxy, affectedToPathList } from 'proxy-compare';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/index.js';\nimport { subscribe, snapshot } from 'valtio/vanilla';\n\nconst { use } = ReactExports;\nconst { useSyncExternalStore } = useSyncExternalStoreExports;\nconst useAffectedDebugValue = (state, affected) => {\n const pathList = useRef();\n useEffect(() => {\n pathList.current = affectedToPathList(state, affected, true);\n });\n useDebugValue(pathList.current);\n};\nconst targetCache = /* @__PURE__ */ new WeakMap();\nfunction useSnapshot(proxyObject, options) {\n const notifyInSync = options == null ? void 0 : options.sync;\n const lastSnapshot = useRef();\n const lastAffected = useRef();\n let inRender = true;\n const currSnapshot = useSyncExternalStore(\n useCallback(\n (callback) => {\n const unsub = subscribe(proxyObject, callback, notifyInSync);\n callback();\n return unsub;\n },\n [proxyObject, notifyInSync]\n ),\n () => {\n const nextSnapshot = snapshot(proxyObject, use);\n try {\n if (!inRender && lastSnapshot.current && lastAffected.current && !isChanged(\n lastSnapshot.current,\n nextSnapshot,\n lastAffected.current,\n /* @__PURE__ */ new WeakMap()\n )) {\n return lastSnapshot.current;\n }\n } catch (e) {\n }\n return nextSnapshot;\n },\n () => snapshot(proxyObject, use)\n );\n inRender = false;\n const currAffected = /* @__PURE__ */ new WeakMap();\n useEffect(() => {\n lastSnapshot.current = currSnapshot;\n lastAffected.current = currAffected;\n });\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n useAffectedDebugValue(currSnapshot, currAffected);\n }\n const proxyCache = useMemo(() => /* @__PURE__ */ new WeakMap(), []);\n return createProxy(\n currSnapshot,\n currAffected,\n proxyCache,\n targetCache\n );\n}\n\nexport { useSnapshot };\n","import { proxy } from 'valtio'\n\nexport const windowSizeState = proxy({\n currentWidth: window.innerWidth,\n currentHeight: window.innerHeight,\n get ipadMini() {\n return this.currentWidth <= 1024 && this.currentHeight > 1000\n },\n get mobileMode() {\n return this.currentWidth <= 920\n },\n get phoneMode() {\n return this.currentWidth <= 767\n },\n\n get isMobileRotate() {\n return this.currentWidth < 768\n },\n\n get vw() {\n return this.currentWidth\n },\n\n get isLandscapePhone() {\n return this.currentWidth <= 920 && this.currentHeight <= 550\n },\n})\n\nlet timeoutID = setTimeout(() => {}, 1000)\n\nconst handleResize = () => {\n windowSizeState.currentWidth = window.innerWidth\n windowSizeState.currentHeight = window.innerHeight\n}\n\nconst debouncedHandleResize = () => {\n clearTimeout(timeoutID)\n timeoutID = setTimeout(handleResize, 250)\n}\n\nwindow.addEventListener('resize', debouncedHandleResize)\n\nexport const newWidthScale = (minWidth) => {\n if (windowSizeState.currentWidth < minWidth) {\n const diff = minWidth - windowSizeState.currentWidth\n return 1 - diff / minWidth\n } else {\n return 1\n }\n}\n\nexport const newHeightScale = (minHeight) => {\n if (windowSizeState.currentHeight < minHeight) {\n const diff = minHeight - windowSizeState.currentHeight\n return 1 - diff / minHeight\n }\n return 1\n}\n","import { proxy } from 'valtio'\n\nconst uiState = proxy({\n homepage: {\n visible: true\n }\n})\n\nexport default uiState\n","const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","const noop = (any) => any;\n\nexport { noop };\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","class Queue {\n constructor() {\n this.order = [];\n this.scheduled = new Set();\n }\n add(process) {\n if (!this.scheduled.has(process)) {\n this.scheduled.add(process);\n this.order.push(process);\n return true;\n }\n }\n remove(process) {\n const index = this.order.indexOf(process);\n if (index !== -1) {\n this.order.splice(index, 1);\n this.scheduled.delete(process);\n }\n }\n clear() {\n this.order.length = 0;\n this.scheduled.clear();\n }\n}\nfunction createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Queue();\n let nextFrame = new Queue();\n let numToRun = 0;\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (queue.add(callback) && addToCurrentFrame && isProcessing) {\n // If we're adding it to the currently running queue, update its measured size\n numToRun = thisFrame.order.length;\n }\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.remove(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Clear the next frame queue\n nextFrame.clear();\n // Execute this frame\n numToRun = thisFrame.order.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = thisFrame.order[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"prepare\",\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0,\n timestamp: 0,\n isProcessing: false,\n };\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n }, {});\n const processStep = (stepId) => steps[stepId].process(state);\n const processBatch = () => {\n const timestamp = performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n stepsOrder.forEach(processStep);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => stepsOrder.forEach((key) => steps[key].cancel(process));\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n","import { noop } from '../utils/noop.mjs';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, steps };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _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 try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import * as React from 'react';\nimport { useId, useRef, useInsertionEffect } from 'react';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (React.createElement(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size }, React.cloneElement(children, { ref })));\n}\n\nexport { PopChild };\n","import * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n 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(() => {\n presenceChildren.forEach((_, key) => 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(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = React.createElement(PopChild, { isPresent: isPresent }, children);\n }\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n","import * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\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';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (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 */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\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 const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\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 const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const 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 const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map((child) => (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child)))));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\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 (mode === \"wait\" && exitingChildren.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 exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n allChildren.delete(key);\n exitingChildren.delete(key);\n // Remove this child from the present children\n const removeIndex = presentChildren.current.findIndex((presentChild) => presentChild.key === key);\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\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((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n return (React.createElement(React.Fragment, null, exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child))));\n};\n\nexport { AnimatePresence };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\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 const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext } from 'react';\n\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { SwitchLayoutGroupContext } from '../context/SwitchLayoutGroupContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement);\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n const isStrict = useContext(LazyContext).strict;\n if (context.visualElement) {\n MeasureLayout = context.visualElement.loadFeatures(\n // Note: Pass the full new combined props to correctly re-render dynamic feature components.\n configAndProps, isStrict, preloadedFeatures, initialLayoutGroupConfig);\n }\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (React.createElement(MotionContext.Provider, { value: context },\n MeasureLayout && context.visualElement ? (React.createElement(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null,\n useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)));\n }\n const ForwardRefComponent = forwardRef(MotionComponent);\n ForwardRefComponent[motionComponentSymbol] = Component;\n return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n","import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n useInsertionEffect(() => {\n visualElement && visualElement.update(props, presenceContext);\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const canHandoff = useRef(Boolean(window.HandoffAppearAnimations));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n visualElement.render();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (canHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n visualElement.updateFeatures();\n if (!canHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n /**\n * Once we've handed off animations we can delete HandoffAppearAnimations\n * so components added after the initial render can animate changes\n * in useEffect vs useLayoutEffect.\n */\n window.HandoffAppearAnimations = undefined;\n canHandoff.current = false;\n });\n return visualElement;\n}\n\nexport { useVisualElement };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig = {}) {\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","import { transformPropOrder } from './transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(transform, { enableHardwareAcceleration = true, allowTransformNone = true, }, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n if (transform[key] !== undefined) {\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${transform[key]}) `;\n }\n }\n if (enableHardwareAcceleration && !transform.z) {\n transformString += \"translateZ(0)\";\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = checkStringStartsWith(\"--\");\nconst isCSSVariableToken = checkStringStartsWith(\"var(--\");\nconst cssVariableRegex = /var\\s*\\(\\s*--[\\w-]+(\\s*,\\s*(?:(?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)+)?\\s*\\)/g;\n\nexport { cssVariableRegex, isCSSVariableName, isCSSVariableToken };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","/**\n * TODO: When we move from string as a source of truth to data models\n * everything in this folder should probably be referred to as models vs types\n */\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{3,8}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3,8}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))$/i;\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nexport { colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType(\"deg\");\nconst percent = createUnitType(\"%\");\nconst px = createUnitType(\"px\");\nconst vh = createUnitType(\"vh\");\nconst vw = createUnitType(\"vw\");\nconst progressPercentage = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { px, degrees, progressPercentage } from '../../../value/types/numbers/units.mjs';\nimport { int } from './type-int.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariableName } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n const { style, vars, transform, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n let transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueType = numberValueTypes[key];\n const valueAsType = getValueAsType(value, valueType);\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== (valueType.default || 0))\n transformIsNone = false;\n }\n else if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] = valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(state.transform, options, transformIsNone, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState, isStatic) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n return props.transformValues ? props.transformValues(style) : style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState, isStatic);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}","import { px } from '../../../value/types/numbers/units.mjs';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, options, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, options, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n","import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, isSVGTag(Component), props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = {\n ...filteredProps,\n ...visualProps,\n ref,\n };\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n };\n return useRender;\n}\n\nexport { createUseRender };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style && isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps);\n for (const key in props) {\n if (isMotionValue(props[key]) || isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function resolveVariantFromProps(props, definition, custom, currentValues = {}, currentVelocity = {}) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (v) => {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n frame.read(() => {\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n });\n frame.render(() => {\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, isSVGTag(instance.tagName), props.transformTemplate);\n renderSVG(instance, renderState);\n });\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n","const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n","import { isPrimaryPointer } from './utils/is-primary-pointer.mjs';\n\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: {\n x: event[pointType + \"X\"],\n y: event[pointType + \"Y\"],\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n","import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n","import { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction addHoverEvent(node, isActive) {\n const eventName = \"pointer\" + (isActive ? \"enter\" : \"leave\");\n const callbackName = \"onHover\" + (isActive ? \"Start\" : \"End\");\n const handleEvent = (event, info) => {\n if (event.type === \"touch\" || isDragActive())\n return;\n const props = node.getProps();\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", isActive);\n }\n if (props[callbackName]) {\n frame.update(() => props[callbackName](event, info));\n }\n };\n return addPointerEvent(node.current, eventName, handleEvent, {\n passive: !node.getProps()[callbackName],\n });\n}\nclass HoverGesture extends Feature {\n mount() {\n this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n","import { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","import { extractEventInfo } from '../events/event-info.mjs';\nimport { addDomEvent } from '../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { noop } from '../utils/noop.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction fireSyntheticPointerEvent(name, handler) {\n if (!handler)\n return;\n const syntheticPointerEvent = new PointerEvent(\"pointer\" + name);\n handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));\n}\nclass PressGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removeStartListeners = noop;\n this.removeEndListeners = noop;\n this.removeAccessibleListeners = noop;\n this.startPointerPress = (startEvent, startInfo) => {\n this.removeEndListeners();\n if (this.isPressing)\n return;\n const props = this.node.getProps();\n const endPointerPress = (endEvent, endInfo) => {\n if (!this.checkPressEnd())\n return;\n const { onTap, onTapCancel } = this.node.getProps();\n frame.update(() => {\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel && onTapCancel(endEvent, endInfo)\n : onTap && onTap(endEvent, endInfo);\n });\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, { passive: !(props.onTap || props[\"onPointerUp\"]) });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), { passive: !(props.onTapCancel || props[\"onPointerCancel\"]) });\n this.removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n this.startPress(startEvent, startInfo);\n };\n this.startAccessiblePress = () => {\n const handleKeydown = (keydownEvent) => {\n if (keydownEvent.key !== \"Enter\" || this.isPressing)\n return;\n const handleKeyup = (keyupEvent) => {\n if (keyupEvent.key !== \"Enter\" || !this.checkPressEnd())\n return;\n fireSyntheticPointerEvent(\"up\", (event, info) => {\n const { onTap } = this.node.getProps();\n if (onTap) {\n frame.update(() => onTap(event, info));\n }\n });\n };\n this.removeEndListeners();\n this.removeEndListeners = addDomEvent(this.node.current, \"keyup\", handleKeyup);\n fireSyntheticPointerEvent(\"down\", (event, info) => {\n this.startPress(event, info);\n });\n };\n const removeKeydownListener = addDomEvent(this.node.current, \"keydown\", handleKeydown);\n const handleBlur = () => {\n if (!this.isPressing)\n return;\n fireSyntheticPointerEvent(\"cancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo));\n };\n const removeBlurListener = addDomEvent(this.node.current, \"blur\", handleBlur);\n this.removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n };\n }\n startPress(event, info) {\n this.isPressing = true;\n const { onTapStart, whileTap } = this.node.getProps();\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", true);\n }\n if (onTapStart) {\n frame.update(() => onTapStart(event, info));\n }\n }\n checkPressEnd() {\n this.removeEndListeners();\n this.isPressing = false;\n const props = this.node.getProps();\n if (props.whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", false);\n }\n return !isDragActive();\n }\n cancelPress(event, info) {\n if (!this.checkPressEnd())\n return;\n const { onTapCancel } = this.node.getProps();\n if (onTapCancel) {\n frame.update(() => onTapCancel(event, info));\n }\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(this.node.current, \"pointerdown\", this.startPointerPress, { passive: !(props.onTapStart || props[\"onPointerStart\"]) });\n const removeFocusListener = addDomEvent(this.node.current, \"focus\", this.startAccessiblePress);\n this.removeStartListeners = pipe(removePointerListener, removeFocusListener);\n }\n unmount() {\n this.removeStartListeners();\n this.removeEndListeners();\n this.removeAccessibleListeners();\n }\n}\n\nexport { PressGesture };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n","import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n const current = {};\n visualElement.values.forEach((value, key) => (current[key] = value.get()));\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n const velocity = {};\n visualElement.values.forEach((value, key) => (velocity[key] = value.getVelocity()));\n return velocity;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\n\nexport { resolveVariant };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n","import { isBezierDefinition } from '../../../easing/utils/is-bezier-definition.mjs';\n\nfunction isWaapiSupportedEasing(easing) {\n return Boolean(!easing ||\n (typeof easing === \"string\" && supportedWaapiEasing[easing]) ||\n isBezierDefinition(easing) ||\n (Array.isArray(easing) && easing.every(isWaapiSupportedEasing)));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasing(easing) {\n if (!easing)\n return undefined;\n return isBezierDefinition(easing)\n ? cubicBezierAsString(easing)\n : Array.isArray(easing)\n ? easing.map(mapEasingToNativeEasing)\n : supportedWaapiEasing[easing];\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n","import { noop } from '../utils/noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = cubicBezier(0.42, 0, 1, 1);\nconst easeOut = cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\n\nexport { circIn, circInOut, circOut };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = reverseEasing(backOut);\nconst backInOut = mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { invariant } from '../../utils/errors.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { anticipate } from '../anticipate.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (definition) => {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { clamp } from '../../../utils/clamp.mjs';\nimport { number, alpha } from '../numbers/index.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: isColorString(\"rgb\", \"red\"),\n parse: splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString(\"hsl\", \"hue\"),\n parse: splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mix } from './mix.mjs';\nimport { invariant } from './errors.mjs';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\nimport { hex } from '../value/types/color/hex.mjs';\nimport { rgba } from '../value/types/color/rgba.mjs';\nimport { hsla } from '../value/types/color/hsla.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n return Math.sqrt(Math.max(0, v * (to * to - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n invariant(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mix(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { cssVariableRegex } from '../../../render/dom/utils/is-css-variable.mjs';\nimport { noop } from '../../../utils/noop.mjs';\nimport { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { colorRegex, floatRegex, isString, sanitize } from '../utils.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n isString(v) &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst cssVarTokeniser = {\n regex: cssVariableRegex,\n countKey: \"Vars\",\n token: \"${v}\",\n parse: noop,\n};\nconst colorTokeniser = {\n regex: colorRegex,\n countKey: \"Colors\",\n token: \"${c}\",\n parse: color.parse,\n};\nconst numberTokeniser = {\n regex: floatRegex,\n countKey: \"Numbers\",\n token: \"${n}\",\n parse: number.parse,\n};\nfunction tokenise(info, { regex, countKey, token, parse }) {\n const matches = info.tokenised.match(regex);\n if (!matches)\n return;\n info[\"num\" + countKey] = matches.length;\n info.tokenised = info.tokenised.replace(regex, token);\n info.values.push(...matches.map(parse));\n}\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const info = {\n value: originalValue,\n tokenised: originalValue,\n values: [],\n numVars: 0,\n numColors: 0,\n numNumbers: 0,\n };\n if (info.value.includes(\"var(--\"))\n tokenise(info, cssVarTokeniser);\n tokenise(info, colorTokeniser);\n tokenise(info, numberTokeniser);\n return info;\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { values, numColors, numVars, tokenised } = analyseComplexValue(source);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n if (i < numVars) {\n output = output.replace(cssVarTokeniser.token, v[i]);\n }\n else if (i < numVars + numColors) {\n output = output.replace(colorTokeniser.token, color.transform(v[i]));\n }\n else {\n output = output.replace(numberTokeniser.token, sanitize(v[i]));\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","import { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from './errors.mjs';\nimport { color } from '../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../value/types/complex/index.mjs';\n\nconst mixImmediate = (origin, target) => (p) => `${p > 0 ? target : origin}`;\nfunction getMixer(origin, target) {\n if (typeof origin === \"number\") {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return origin.startsWith(\"var(\")\n ? mixImmediate(origin, target)\n : mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = { ...origin, ...target };\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.numVars === targetStats.numVars &&\n originStats.numColors === targetStats.numColors &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.values, targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return mixImmediate(origin, target);\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","import { invariant } from './errors.mjs';\nimport { color } from '../value/types/color/index.mjs';\nimport { clamp } from './clamp.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === \"number\") {\n return mixNumber;\n }\n else if (typeof v === \"string\") {\n return color.test(v) ? mixColor : mixComplex;\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === \"object\") {\n return mixObject;\n }\n return mixNumber;\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","import { mix } from '../mix.mjs';\nimport { progress } from '../progress.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mix(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","import { easeInOut } from '../../easing/ease.mjs';\nimport { isEasingArray } from '../../easing/utils/is-easing-array.mjs';\nimport { easingDefinitionToFunction } from '../../easing/utils/map.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../../utils/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { velocityPerSecond } from '../../../utils/velocity-per-second.mjs';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n","import { warning } from '../../../utils/errors.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(maxDuration), \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n velocity: 0.0,\n mass: 1.0,\n };\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring({ keyframes, restDelta, restSpeed, ...options }) {\n const origin = keyframes[0];\n const target = keyframes[keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n const initialVelocity = velocity ? -millisecondsToSeconds(velocity) : 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale ? 0.01 : 2);\n restDelta || (restDelta = isGranularScale ? 0.005 : 0.5);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n return {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = initialVelocity;\n if (t !== 0) {\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity = calcGeneratorVelocity(resolveSpring, t, current);\n }\n else {\n currentVelocity = 0;\n }\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n };\n}\n\nexport { spring };\n","import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value),\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t > timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n","import { frame, cancelFrame, frameData } from '../../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: () => frame.update(passTimestamp, true),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => frameData.isProcessing ? frameData.timestamp : performance.now(),\n };\n};\n\nexport { frameloopDriver };\n","/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n","import { keyframes } from '../../generators/keyframes.mjs';\nimport { spring } from '../../generators/spring/index.mjs';\nimport { inertia } from '../../generators/inertia.mjs';\nimport { frameloopDriver } from './driver-frameloop.mjs';\nimport { interpolate } from '../../../utils/interpolate.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorDuration } from '../../generators/utils/calc-duration.mjs';\n\nconst types = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\n/**\n * Animate a single value on the main thread.\n *\n * This function is written, where functionality overlaps,\n * to be largely spec-compliant with WAAPI to allow fungibility\n * between the two.\n */\nfunction animateValue({ autoplay = true, delay = 0, driver = frameloopDriver, keyframes: keyframes$1, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", onPlay, onStop, onComplete, onUpdate, ...options }) {\n let speed = 1;\n let hasStopped = false;\n let resolveFinishedPromise;\n let currentFinishedPromise;\n /**\n * Resolve the current Promise every time we enter the\n * finished state. This is WAAPI-compatible behaviour.\n */\n const updateFinishedPromise = () => {\n currentFinishedPromise = new Promise((resolve) => {\n resolveFinishedPromise = resolve;\n });\n };\n // Create the first finished promise\n updateFinishedPromise();\n let animationDriver;\n const generatorFactory = types[type] || keyframes;\n /**\n * If this isn't the keyframes generator and we've been provided\n * strings as keyframes, we need to interpolate these.\n * TODO: Support velocity for units and complex value types/\n */\n let mapNumbersToKeyframes;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n mapNumbersToKeyframes = interpolate([0, 100], keyframes$1, {\n clamp: false,\n });\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n let mirroredGenerator;\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -(options.velocity || 0),\n });\n }\n let playState = \"idle\";\n let holdTime = null;\n let startTime = null;\n let cancelTime = null;\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null && repeat) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n let resolvedDuration = Infinity;\n let totalDuration = Infinity;\n if (calculatedDuration !== null) {\n resolvedDuration = calculatedDuration + repeatDelay;\n totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n }\n let currentTime = 0;\n const tick = (timestamp) => {\n if (startTime === null)\n return;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (speed > 0)\n startTime = Math.min(startTime, timestamp);\n if (speed < 0)\n startTime = Math.min(timestamp - totalDuration / speed, startTime);\n if (holdTime !== null) {\n currentTime = holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n currentTime = Math.round(timestamp - startTime) * speed;\n }\n // Rebase on delay\n const timeWithoutDelay = currentTime - delay * (speed >= 0 ? 1 : -1);\n const isInDelayPhase = speed >= 0 ? timeWithoutDelay < 0 : timeWithoutDelay > totalDuration;\n currentTime = Math.max(timeWithoutDelay, 0);\n /**\n * If this animation has finished, set the current time\n * to the total duration.\n */\n if (playState === \"finished\" && holdTime === null) {\n currentTime = totalDuration;\n }\n let elapsed = currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = currentTime / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const iterationIsOdd = Boolean(currentIteration % 2);\n if (iterationIsOdd) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n let p = clamp(0, 1, iterationProgress);\n if (currentTime > totalDuration) {\n p = repeatType === \"reverse\" && iterationIsOdd ? 1 : 0;\n }\n elapsed = p * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes$1[0] }\n : frameGenerator.next(elapsed);\n if (mapNumbersToKeyframes) {\n state.value = mapNumbersToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done = speed >= 0 ? currentTime >= totalDuration : currentTime <= 0;\n }\n const isAnimationFinished = holdTime === null &&\n (playState === \"finished\" || (playState === \"running\" && done));\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n finish();\n }\n return state;\n };\n const stopAnimationDriver = () => {\n animationDriver && animationDriver.stop();\n animationDriver = undefined;\n };\n const cancel = () => {\n playState = \"idle\";\n stopAnimationDriver();\n resolveFinishedPromise();\n updateFinishedPromise();\n startTime = cancelTime = null;\n };\n const finish = () => {\n playState = \"finished\";\n onComplete && onComplete();\n stopAnimationDriver();\n resolveFinishedPromise();\n };\n const play = () => {\n if (hasStopped)\n return;\n if (!animationDriver)\n animationDriver = driver(tick);\n const now = animationDriver.now();\n onPlay && onPlay();\n if (holdTime !== null) {\n startTime = now - holdTime;\n }\n else if (!startTime || playState === \"finished\") {\n startTime = now;\n }\n if (playState === \"finished\") {\n updateFinishedPromise();\n }\n cancelTime = startTime;\n holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n playState = \"running\";\n animationDriver.start();\n };\n if (autoplay) {\n play();\n }\n const controls = {\n then(resolve, reject) {\n return currentFinishedPromise.then(resolve, reject);\n },\n get time() {\n return millisecondsToSeconds(currentTime);\n },\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n currentTime = newTime;\n if (holdTime !== null || !animationDriver || speed === 0) {\n holdTime = newTime;\n }\n else {\n startTime = animationDriver.now() - newTime / speed;\n }\n },\n get duration() {\n const duration = generator.calculatedDuration === null\n ? calcGeneratorDuration(generator)\n : generator.calculatedDuration;\n return millisecondsToSeconds(duration);\n },\n get speed() {\n return speed;\n },\n set speed(newSpeed) {\n if (newSpeed === speed || !animationDriver)\n return;\n speed = newSpeed;\n controls.time = millisecondsToSeconds(currentTime);\n },\n get state() {\n return playState;\n },\n play,\n pause: () => {\n playState = \"paused\";\n holdTime = currentTime;\n },\n stop: () => {\n hasStopped = true;\n if (playState === \"idle\")\n return;\n playState = \"idle\";\n onStop && onStop();\n cancel();\n },\n cancel: () => {\n if (cancelTime !== null)\n tick(cancelTime);\n cancel();\n },\n complete: () => {\n playState = \"finished\";\n },\n sample: (elapsed) => {\n startTime = 0;\n return tick(elapsed);\n },\n };\n return controls;\n}\n\nexport { animateValue };\n","import { animateStyle } from './index.mjs';\nimport { isWaapiSupportedEasing } from './easing.mjs';\nimport { getFinalKeyframe } from './utils/get-final-keyframe.mjs';\nimport { animateValue } from '../js/index.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../../utils/time-conversion.mjs';\nimport { memo } from '../../../utils/memo.mjs';\nimport { noop } from '../../../utils/noop.mjs';\nimport { frameData, frame, cancelFrame } from '../../../frameloop/frame.mjs';\n\nconst supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n \"backgroundColor\",\n]);\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxDuration = 20000;\nconst requiresPregeneratedKeyframes = (valueName, options) => options.type === \"spring\" ||\n valueName === \"backgroundColor\" ||\n !isWaapiSupportedEasing(options.ease);\nfunction createAcceleratedAnimation(value, valueName, { onUpdate, onComplete, ...options }) {\n const canAccelerateAnimation = supportsWaapi() &&\n acceleratedValues.has(valueName) &&\n !options.repeatDelay &&\n options.repeatType !== \"mirror\" &&\n options.damping !== 0 &&\n options.type !== \"inertia\";\n if (!canAccelerateAnimation)\n return false;\n /**\n * TODO: Unify with js/index\n */\n let hasStopped = false;\n let resolveFinishedPromise;\n let currentFinishedPromise;\n /**\n * Resolve the current Promise every time we enter the\n * finished state. This is WAAPI-compatible behaviour.\n */\n const updateFinishedPromise = () => {\n currentFinishedPromise = new Promise((resolve) => {\n resolveFinishedPromise = resolve;\n });\n };\n // Create the first finished promise\n updateFinishedPromise();\n let { keyframes, duration = 300, ease, times } = options;\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(valueName, options)) {\n const sampleAnimation = animateValue({\n ...options,\n repeat: 0,\n delay: 0,\n });\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n /**\n * Bail after 20 seconds of pre-generated keyframes as it's likely\n * we're heading for an infinite loop.\n */\n let t = 0;\n while (!state.done && t < maxDuration) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n times = undefined;\n keyframes = pregeneratedKeyframes;\n duration = t - sampleDelta;\n ease = \"linear\";\n }\n const animation = animateStyle(value.owner.current, valueName, keyframes, {\n ...options,\n duration,\n /**\n * This function is currently not called if ease is provided\n * as a function so the cast is safe.\n *\n * However it would be possible for a future refinement to port\n * in easing pregeneration from Motion One for browsers that\n * support the upcoming `linear()` easing function.\n */\n ease: ease,\n times,\n });\n /**\n * WAAPI animations don't resolve startTime synchronously. But a blocked\n * thread could delay the startTime resolution by a noticeable amount.\n * For synching handoff animations with the new Motion animation we want\n * to ensure startTime is synchronously set.\n */\n if (options.syncStart) {\n animation.startTime = frameData.isProcessing\n ? frameData.timestamp\n : document.timeline\n ? document.timeline.currentTime\n : performance.now();\n }\n const cancelAnimation = () => animation.cancel();\n const safeCancel = () => {\n frame.update(cancelAnimation);\n resolveFinishedPromise();\n updateFinishedPromise();\n };\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n value.set(getFinalKeyframe(keyframes, options));\n onComplete && onComplete();\n safeCancel();\n };\n /**\n * Animation interrupt callback.\n */\n const controls = {\n then(resolve, reject) {\n return currentFinishedPromise.then(resolve, reject);\n },\n attachTimeline(timeline) {\n animation.timeline = timeline;\n animation.onfinish = null;\n return noop;\n },\n get time() {\n return millisecondsToSeconds(animation.currentTime || 0);\n },\n set time(newTime) {\n animation.currentTime = secondsToMilliseconds(newTime);\n },\n get speed() {\n return animation.playbackRate;\n },\n set speed(newSpeed) {\n animation.playbackRate = newSpeed;\n },\n get duration() {\n return millisecondsToSeconds(duration);\n },\n play: () => {\n if (hasStopped)\n return;\n animation.play();\n /**\n * Cancel any pending cancel tasks\n */\n cancelFrame(cancelAnimation);\n },\n pause: () => animation.pause(),\n stop: () => {\n hasStopped = true;\n if (animation.playState === \"idle\")\n return;\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n const { currentTime } = animation;\n if (currentTime) {\n const sampleAnimation = animateValue({\n ...options,\n autoplay: false,\n });\n value.setWithVelocity(sampleAnimation.sample(currentTime - sampleDelta).value, sampleAnimation.sample(currentTime).value, sampleDelta);\n }\n safeCancel();\n },\n complete: () => animation.finish(),\n cancel: safeCancel,\n };\n return controls;\n}\n\nexport { createAcceleratedAnimation };\n","function memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","import { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction animateStyle(element, valueName, keyframes, { delay = 0, duration, repeat = 0, repeatType = \"loop\", ease, times, } = {}) {\n const keyframeOptions = { [valueName]: keyframes };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n return element.animate(keyframeOptions, {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { animateStyle };\n","function getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }) {\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : keyframes.length - 1;\n return keyframes[index];\n}\n\nexport { getFinalKeyframe };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n","import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (key, value) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /([a-z-]*)\\(.*?\\)/g;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/.test(v);\n\nexport { isZeroValueString };\n","import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n}\n\nexport { isNone };\n","/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n\nexport { getValueTransition, isTransitionDefined };\n","import { warning } from '../../utils/errors.mjs';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { createAcceleratedAnimation } from '../animators/waapi/create-accelerated-animation.mjs';\nimport { createInstantAnimation } from '../animators/instant.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { isAnimatable } from '../utils/is-animatable.mjs';\nimport { getKeyframes } from '../utils/keyframes.mjs';\nimport { getValueTransition, isTransitionDefined } from '../utils/transitions.mjs';\nimport { animateValue } from '../animators/js/index.mjs';\n\nconst animateMotionValue = (valueName, value, target, transition = {}) => {\n return (onComplete) => {\n const valueTransition = getValueTransition(transition, valueName) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n const keyframes = getKeyframes(value, valueName, target, valueTransition);\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(valueName, originKeyframe);\n const isTargetAnimatable = isAnimatable(valueName, targetKeyframe);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${valueName} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n let options = {\n keyframes,\n velocity: value.getVelocity(),\n ease: \"easeOut\",\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(valueName, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n if (!isOriginAnimatable ||\n !isTargetAnimatable ||\n instantAnimationState.current ||\n valueTransition.type === false) {\n /**\n * If we can't animate this value, or the global instant animation flag is set,\n * or this is simply defined as an instant transition, return an instant transition.\n */\n return createInstantAnimation(instantAnimationState.current\n ? { ...options, delay: 0 }\n : options);\n }\n /**\n * Animate via WAAPI if possible.\n */\n if (value.owner &&\n value.owner.current instanceof HTMLElement &&\n !value.owner.getProps().onUpdate) {\n const acceleratedAnimation = createAcceleratedAnimation(value, valueName, options);\n if (acceleratedAnimation)\n return acceleratedAnimation;\n }\n /**\n * If we didn't create an accelerated animation, create a JS animation\n */\n return animateValue(options);\n };\n};\n\nexport { animateMotionValue };\n","import { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { isNone } from './is-none.mjs';\n\nfunction getKeyframes(value, valueName, target, transition) {\n const isTargetAnimatable = isAnimatable(valueName, target);\n let keyframes;\n if (Array.isArray(target)) {\n keyframes = [...target];\n }\n else {\n keyframes = [null, target];\n }\n const defaultOrigin = transition.from !== undefined ? transition.from : value.get();\n let animatableTemplateValue = undefined;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < keyframes.length; i++) {\n /**\n * Fill null/wildcard keyframes\n */\n if (keyframes[i] === null) {\n keyframes[i] = i === 0 ? defaultOrigin : keyframes[i - 1];\n }\n if (isNone(keyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n // TODO: Clean this conditional, it works for now\n if (typeof keyframes[i] === \"string\" &&\n keyframes[i] !== \"none\" &&\n keyframes[i] !== \"0\") {\n animatableTemplateValue = keyframes[i];\n }\n }\n if (isTargetAnimatable &&\n noneKeyframeIndexes.length &&\n animatableTemplateValue) {\n for (let i = 0; i < noneKeyframeIndexes.length; i++) {\n const index = noneKeyframeIndexes[i];\n keyframes[index] = getAnimatableNone(valueName, animatableTemplateValue);\n }\n }\n return keyframes;\n}\n\nexport { getKeyframes };\n","import { animateValue } from './js/index.mjs';\nimport { noop } from '../../utils/noop.mjs';\n\nfunction createInstantAnimation({ keyframes, delay, onUpdate, onComplete, }) {\n const setValue = () => {\n onUpdate && onUpdate(keyframes[keyframes.length - 1]);\n onComplete && onComplete();\n /**\n * TODO: As this API grows it could make sense to always return\n * animateValue. This will be a bigger project as animateValue\n * is frame-locked whereas this function resolves instantly.\n * This is a behavioural change and also has ramifications regarding\n * assumptions within tests.\n */\n return {\n time: 0,\n speed: 1,\n duration: 0,\n play: (noop),\n pause: (noop),\n stop: (noop),\n then: (resolve) => {\n resolve();\n return Promise.resolve();\n },\n cancel: (noop),\n complete: (noop),\n };\n };\n return delay\n ? animateValue({\n keyframes: [0, 1],\n duration: 0,\n delay,\n onComplete: setValue,\n })\n : setValue();\n}\n\nexport { createInstantAnimation };\n","import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^\\-?\\d*\\.?\\d+$/.test(v);\n\nexport { isNumericalString };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { frame, frameData } from '../frameloop/frame.mjs';\n\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"10.16.4\";\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n this.prev = this.current;\n this.current = v;\n // Update timestamp\n const { delta, timestamp } = frameData;\n if (this.lastUpdated !== timestamp) {\n this.timeDelta = delta;\n this.lastUpdated = timestamp;\n frame.postRender(this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (this.prev !== this.current && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update velocity subscribers\n if (this.events.velocityChange) {\n this.events.velocityChange.notify(this.getVelocity());\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = () => frame.postRender(this.velocityCheck);\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = ({ timestamp }) => {\n if (timestamp !== this.lastUpdated) {\n this.prev = this.current;\n if (this.events.velocityChange) {\n this.events.velocityChange.notify(this.getVelocity());\n }\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\n this.owner = options.owner;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = prev;\n this.timeDelta = delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v) {\n this.updateAndNotify(v);\n this.prev = v;\n this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 0;\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","import { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n const reversedLabels = [...variantLabels].reverse();\n reversedLabels.forEach((key) => {\n const variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n if (visualElement.variantChildren) {\n visualElement.variantChildren.forEach((child) => {\n setVariants(child, variantLabels);\n });\n }\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b;\n const newValueKeys = Object.keys(target).filter((key) => !visualElement.hasValue(key));\n const numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (let i = 0; i < numNewValues; i++) {\n const key = newValueKeys[i];\n const targetValue = target[key];\n let value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n if (value === undefined || value === null)\n continue;\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value, { owner: visualElement }));\n if (origin[key] === undefined) {\n origin[key] = value;\n }\n if (value !== null)\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n const valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n const origin = {};\n for (const key in target) {\n const transitionOrigin = getOriginFromTransition(key, transition);\n if (transitionOrigin !== undefined) {\n origin[key] = transitionOrigin;\n }\n else {\n const value = visualElement.getValue(key);\n if (value) {\n origin[key] = value.get();\n }\n }\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\nimport { optimizedAppearDataAttribute } from '../optimized-appear/data-id.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\nimport { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, definition, { delay = 0, transitionOverride, type } = {}) {\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = visualElement.makeTargetAnimatable(definition);\n const willChange = visualElement.getValue(\"willChange\");\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key);\n const valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n elapsed: 0,\n ...transition,\n };\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n if (window.HandoffAppearAnimations && !value.hasAnimated) {\n const appearId = visualElement.getProps()[optimizedAppearDataAttribute];\n if (appearId) {\n valueTransition.elapsed = window.HandoffAppearAnimations(appearId, key, value, frame);\n valueTransition.syncStart = true;\n }\n }\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key)\n ? { type: false }\n : valueTransition));\n const animation = value.animation;\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n animation.then(() => willChange.remove(key));\n }\n animations.push(animation);\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n const resolved = resolveVariant(visualElement, variant, options.custom);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\nimport { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n const state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (acc, definition) => {\n const resolved = resolveVariant(visualElement, definition);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(options, changedActiveType) {\n const props = visualElement.getProps();\n const context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined ? props[type] : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n if (next !== prev) {\n /**\n * If both values are keyframes, we need to shallow compare them to\n * detect whether any value has changed. If it has, we animate it.\n */\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n if (!shallowCompare(next, prev) || variantDidChange) {\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we want to ensure it doesn't animate by\n * adding it to the list of protected keys.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n else if (next !== undefined) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n * TODO: Test as this should probably still handle animations triggered\n * by removed values?\n */\n if (shouldAnimateType && !isInherited) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type, ...options },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n if (fallbackTarget !== undefined) {\n fallbackAnimation[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n props.initial === false &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive, options) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(options, type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => visualElement.notify(\"AnimationComplete\", definition));\n}\n\nexport { animateVisualElement };\n","import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n this.unmount();\n if (isAnimationControls(animate)) {\n this.unmount = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() { }\n}\n\nexport { AnimationFeature };\n","import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete, custom } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent, { custom: custom !== null && custom !== void 0 ? custom : this.node.getProps().custom });\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => onExitComplete(this.id));\n }\n }\n mount() {\n const { register } = this.node.presenceContext || {};\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n","import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n","import { extractEventInfo } from '../../events/event-info.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\nimport { isPrimaryPointer } from '../../events/utils/is-primary-pointer.mjs';\nimport { frame, cancelFrame, frameData } from '../../frameloop/frame.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const { onEnd, onSessionEnd } = this.handlers;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(window, \"pointermove\", this.handlePointerMove), addPointerEvent(window, \"pointerup\", this.handlePointerUp), addPointerEvent(window, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { mix } from '../../utils/mix.mjs';\n\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target = 0, maxDistance = 0.01) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mix(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001) || isNaN(delta.scale))\n delta.scale = 1;\n delta.translate =\n mix(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate) || isNaN(delta.translate))\n delta.translate = 0;\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n","import { progress } from '../../../utils/progress.mjs';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { mix } from '../../../utils/mix.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic ? mix(min, point, elastic.min) : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic ? mix(max, point, elastic.max) : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { mix } from '../../utils/mix.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const instance = node.instance;\n if (instance &&\n instance.style &&\n instance.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n treeScale.x = snapToDefault(treeScale.x);\n treeScale.y = snapToDefault(treeScale.y);\n}\nfunction snapToDefault(scale) {\n if (Number.isInteger(scale))\n return scale;\n return scale > 1.0000000000001 || scale < 0.999999999999 ? scale : 1;\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, transforms, [key, scaleKey, originKey]) {\n const axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n const originPoint = mix(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform, xKeys);\n transformAxis(box.y, transform, yKeys);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { invariant } from '../../utils/errors.mjs';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, calcOrigin } from './utils/constraints.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: PointerEvent\nclass VisualElementDragControls {\n constructor(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n // Stop any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openGlobalLock)\n this.openGlobalLock();\n this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openGlobalLock)\n return;\n }\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n frame.update(() => onDragStart(event, info), false, true);\n }\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n // latestPointerEvent = event\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openGlobalLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag && onDrag(event, info);\n };\n const onSessionEnd = (event, info) => this.stop(event, info);\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n }, { transformPagePoint: this.visualElement.getTransformPagePoint() });\n }\n stop(event, info) {\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n const { velocity } = info;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n frame.update(() => onDragEnd(event, info));\n }\n }\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n const { dragConstraints, dragElastic } = this.getProps();\n const { layout } = this.visualElement.projection || {};\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = \"_drag\" + axis.toUpperCase();\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial ? props.initial[axis] : undefined) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mix(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mix(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints)) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n measureDragConstraints();\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\n\nclass DragGesture extends Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = noop;\n this.removeListeners = noop;\n this.controls = new VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || noop;\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n }\n}\n\nexport { DragGesture };\n","import { PanSession } from './PanSession.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n frame.update(() => handler(event, info));\n }\n};\nclass PanGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new PanSession(pointerDownEvent, this.createPanHandlers(), { transformPagePoint: this.node.getTransformPagePoint() });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: onPan,\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n frame.update(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = addPointerEvent(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\nexport { PanGesture };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { px } from '../../value/types/numbers/units.mjs';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { mix } from '../../utils/mix.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mix(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nexport { correctBoxShadow };\n","import React__default, { useContext } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\nimport { frame } from '../../../frameloop/frame.mjs';\n\nclass MeasureLayoutWithContext extends React__default.Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n frame.postRender(() => {\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n queueMicrotask(() => {\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (React__default.createElement(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","import { useContext, useId, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => register(id), []);\n const safeToRemove = () => onExitComplete && onExitComplete(id);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","import { circOut } from '../../easing/circ.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mix(0, \n // TODO Reinstate this if only child\n lead.opacity !== undefined ? lead.opacity : 1, easeCrossfadeIn(progress));\n target.opacityExit = mix(follow.opacity !== undefined ? follow.opacity : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mix(follow.opacity !== undefined ? follow.opacity : 1, lead.opacity !== undefined ? lead.opacity : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mix(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mix(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = compress(0, 0.5, circOut);\nconst easeCrossfadeOut = compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n\nexport { copyAxisInto, copyBoxInto };\n","import { mix } from '../../utils/mix.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mix(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mix(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction boxEquals(a, b) {\n return (a.x.min === b.x.min &&\n a.x.max === b.x.max &&\n a.y.min === b.y.min &&\n a.y.max === b.y.max);\n}\nfunction boxEqualsRounded(a, b) {\n return (Math.round(a.x.min) === Math.round(b.x.min) &&\n Math.round(a.x.max) === Math.round(b.x.max) &&\n Math.round(a.y.min) === Math.round(b.y.min) &&\n Math.round(a.y.max) === Math.round(b.y.max));\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\n\nexport { aspectRatio, boxEquals, boxEqualsRounded, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n if (xTranslate || yTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, 0) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { rotate, rotateX, rotateY } = latestTransform;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n","const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n","import { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { getValueTransition } from '../../animation/utils/transitions.mjs';\nimport { boxEqualsRounded, isDeltaZero, aspectRatio, boxEquals } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { globalProjectionState } from './state.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { record } from '../../debug/record.mjs';\nimport { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { animateSingleValue } from '../../animation/interfaces/single-value.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { cancelFrame, frameData, steps, frame } from '../../frameloop/frame.mjs';\nimport { noop } from '../../utils/noop.mjs';\n\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\n/**\n * Use a mutable data object for debug data so as to not create a new\n * object every frame.\n */\nconst projectionFrameData = {\n type: \"projectionFrame\",\n totalNodes: 0,\n resolvedTargetDeltas: 0,\n recalculatedProjection: 0,\n};\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n projectionFrameData.totalNodes =\n projectionFrameData.resolvedTargetDeltas =\n projectionFrameData.recalculatedProjection =\n 0;\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n record(projectionFrameData);\n };\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance, isLayoutDirty = this.root.hasTreeAnimated) {\n if (this.instance)\n return;\n this.isSVG = isSVGElement(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n attachResizeListener(instance, () => {\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const targetChanged = !this.targetLayout ||\n !boxEqualsRounded(this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (this.options.layoutRoot ||\n (this.resumeFrom && this.resumeFrom.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n cancelFrame(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = performance.now();\n frameData.delta = clamp(0, 1000 / 60, now - frameData.timestamp);\n frameData.timestamp = now;\n frameData.isProcessing = true;\n steps.update.process(frameData);\n steps.preRender.process(frameData);\n steps.render.process(frameData);\n frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n queueMicrotask(() => this.update());\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n frame.preRender(this.updateProjection, false, true);\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n }\n updateLayout() {\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement) {\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot: checkIsScrollRoot(this.instance),\n offset: measureScroll(this.instance),\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty || this.shouldResetTransform;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.isRoot) {\n copyBoxInto(boxWithoutScroll, box);\n const { scroll: rootScroll } = this.root;\n /**\n * Undo the application of page scroll that was originally added\n * to the measured bounding box.\n */\n if (rootScroll) {\n translateAxis(boxWithoutScroll.x, -rootScroll.offset.x);\n translateAxis(boxWithoutScroll.y, -rootScroll.offset.y);\n }\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n var _a;\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty) ||\n this.attemptToResolveRelativeTarget);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = frameData.timestamp;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n // TODO If this is unsuccessful this currently happens every frame\n if (!this.targetDelta && !this.relativeTarget) {\n // TODO: This is a semi-repetition of further down this function, make DRY\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n relativeParent.layout &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n projectionFrameData.resolvedTargetDeltas++;\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n calcProjection() {\n var _a;\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty)) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.projectionTransform) {\n this.projectionDelta = createDelta();\n this.projectionTransform = \"none\";\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n const prevProjectionTransform = this.projectionTransform;\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n if (this.projectionTransform !== prevProjectionTransform ||\n this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n projectionFrameData.recalculatedProjection++;\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.scheduleRender && this.options.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot\n ? snapshot.latestValues\n : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n boxEquals(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = createBox();\n copyBoxInto(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation && this.currentAnimation.stop();\n if (this.resumingFrom && this.resumingFrom.currentAnimation) {\n this.resumingFrom.currentAnimation.stop();\n }\n if (this.pendingAnimation) {\n cancelFrame(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = frame.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n this.currentAnimation = animateSingleValue(0, animationTarget, {\n ...options,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onComplete: () => {\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n }\n getPrevLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected rotation values, we can early return without a forced render.\n let hasRotate = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ) {\n hasRotate = true;\n }\n // If there's no rotation values, we don't need to do any more.\n if (!hasRotate)\n return;\n const resetValues = {};\n // Check the rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n const key = \"rotate\" + transformAxes[i];\n // Record the rotation and then temporarily set it to 0\n if (latestValues[key]) {\n resetValues[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n }\n }\n // Force a render of this element to apply the transform with all rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n getProjectionStyles(styleProp = {}) {\n var _a, _b;\n // TODO: Return lifecycle-persistent object\n const styles = {};\n if (!this.instance || this.isSVG)\n return styles;\n if (!this.isVisible) {\n return { visibility: \"hidden\" };\n }\n else {\n styles.visibility = \"\";\n }\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n const emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n const { x, y } = this.projectionDelta;\n styles.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo } = scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = styles.transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a;\n const snapshot = ((_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n projectionFrameData.totalNodes++;\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetRotation(node) {\n node.resetRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mix(delta.translate, 0, p);\n output.scale = mix(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mix(from.min, to.min, p);\n output.max = mix(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\n\nexport { cleanDirtyNodes, createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n","function record(data) {\n if (window.MotionDebug) {\n window.MotionDebug.record(data);\n }\n}\n\nexport { record };\n","function isSVGElement(element) {\n return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\nexport { isSVGElement };\n","import { frame, cancelFrame } from '../frameloop/frame.mjs';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = performance.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelFrame(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n frame.read(checkElapsed, true);\n return () => cancelFrame(checkElapsed);\n}\n\nexport { delay };\n","import { animateMotionValue } from './motion-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { DragGesture } from '../../gestures/drag/index.mjs';\nimport { PanGesture } from '../../gestures/pan/index.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst drag = {\n pan: {\n Feature: PanGesture,\n },\n drag: {\n Feature: DragGesture,\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { drag };\n","import { invariant } from '../../../utils/errors.mjs';\nimport { isNumericalString } from '../../../utils/is-numerical-string.mjs';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token, fallback] = match;\n return [token, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n else if (isCSSVariableToken(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, { ...target }, transitionEnd) {\n const element = visualElement.current;\n if (!(element instanceof Element))\n return { target, transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = { ...transitionEnd };\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.values.forEach((value) => {\n const current = value.get();\n if (!isCSSVariableToken(current))\n return;\n const resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (const key in target) {\n const current = target[key];\n if (!isCSSVariableToken(current))\n continue;\n const resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n if (!transitionEnd)\n transitionEnd = {};\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd[key] === undefined) {\n transitionEnd[key] = current;\n }\n }\n return { target, transitionEnd };\n}\n\nexport { parseCSSVariable, resolveCSSVariables };\n","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","import { isKeyframesTarget } from '../../../animation/utils/is-keyframes-target.mjs';\nimport { invariant } from '../../../utils/errors.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\nimport { findDimensionValueType } from '../value-types/dimensions.mjs';\nimport { isBrowser } from '../../../utils/is-browser.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n \"translateX\",\n \"translateY\",\n]);\nconst isPositionalKey = (key) => positionalKeys.has(key);\nconst hasPositionalKey = (target) => {\n return Object.keys(target).some(isPositionalKey);\n};\nconst isNumOrPxType = (v) => v === number || v === px;\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.render();\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\nconst convertChangedValueTypes = (target, visualElement, changedKeys) => {\n const originBbox = visualElement.measureViewportBox();\n const element = visualElement.current;\n const elementComputedStyle = getComputedStyle(element);\n const { display } = elementComputedStyle;\n const origin = {};\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValue(\"display\", target.display || \"block\");\n }\n /**\n * Record origins before we render and update styles\n */\n changedKeys.forEach((key) => {\n origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n });\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.render();\n const targetBbox = visualElement.measureViewportBox();\n changedKeys.forEach((key) => {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n const value = visualElement.getValue(key);\n value && value.jump(origin[key]);\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nconst checkAndConvertChangedValueTypes = (visualElement, target, origin = {}, transitionEnd = {}) => {\n target = { ...target };\n transitionEnd = { ...transitionEnd };\n const targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n let removedTransformValues = [];\n let hasAttemptedToRemoveTransformValues = false;\n const changedValueTypeKeys = [];\n targetPositionalKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n let from = origin[key];\n let fromType = findDimensionValueType(from);\n const to = target[key];\n let toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n const numKeyframes = to.length;\n const fromIndex = to[0] === null ? 1 : 0;\n from = to[fromIndex];\n fromType = findDimensionValueType(from);\n for (let i = fromIndex; i < numKeyframes; i++) {\n /**\n * Don't allow wildcard keyframes to be used to detect\n * a difference in value types.\n */\n if (to[i] === null)\n break;\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n const current = value.get();\n if (typeof current === \"string\") {\n value.set(parseFloat(current));\n }\n if (typeof to === \"string\") {\n target[key] = parseFloat(to);\n }\n else if (Array.isArray(to) && toType === px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&\n (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues =\n removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n value.jump(to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n const scrollY = changedValueTypeKeys.indexOf(\"height\") >= 0\n ? window.pageYOffset\n : null;\n const convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(([key, value]) => {\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.render();\n // Restore scroll position\n if (isBrowser && scrollY !== null) {\n window.scrollTo({ top: scrollY });\n }\n return { target: convertedTarget, transitionEnd };\n }\n else {\n return { target, transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target, transitionEnd };\n}\n\nexport { positionalValues, unitConversion };\n","import { resolveCSSVariables } from './css-variables-conversion.mjs';\nimport { unitConversion } from './unit-conversion.mjs';\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nconst parseDomVariant = (visualElement, target, origin, transitionEnd) => {\n const resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\nexport { parseDomVariant };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n","import { warning, invariant } from '../utils/errors.mjs';\nimport { createBox } from '../projection/geometry/models.mjs';\nimport { isRefObject } from '../utils/is-ref-object.mjs';\nimport { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isWillChangeMotionValue } from '../value/use-will-change/is.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { transformProps } from './html/utils/transform.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from './utils/is-variant-label.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { variantProps } from './utils/variant-props.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nconst featureNames = Object.keys(featureDefinitions);\nconst numFeatures = featureNames.length;\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\nconst numVariantProps = variantProps.length;\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n constructor({ parent, props, presenceContext, reducedMotionConfig, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.scheduleRender = () => frame.render(this.render, false, true);\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {});\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n }\n }\n }\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps) {\n return {};\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n visualElementStore.delete(this.current);\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n this.features[key].unmount();\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate &&\n frame.update(this.notifyUpdate, false, true);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n loadFeatures({ children, ...renderedProps }, isStrict, preloadedFeatures, initialLayoutGroupConfig) {\n let ProjectionNodeConstructor;\n let MeasureLayout;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n renderedProps.ignoreStrict\n ? warning(false, strictMessage)\n : invariant(false, strictMessage);\n }\n for (let i = 0; i < numFeatures; i++) {\n const name = featureNames[i];\n const { isEnabled, Feature: FeatureConstructor, ProjectionNode, MeasureLayout: MeasureLayoutComponent, } = featureDefinitions[name];\n if (ProjectionNode)\n ProjectionNodeConstructor = ProjectionNode;\n if (isEnabled(renderedProps)) {\n if (!this.features[name] && FeatureConstructor) {\n this.features[name] = new FeatureConstructor(this);\n }\n if (MeasureLayoutComponent) {\n MeasureLayout = MeasureLayoutComponent;\n }\n }\n }\n if (!this.projection && ProjectionNodeConstructor) {\n this.projection = new ProjectionNodeConstructor(this.latestValues, this.parent && this.parent.projection);\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, } = renderedProps;\n this.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) ||\n (dragConstraints && isRefObject(dragConstraints)),\n visualElement: this,\n scheduleRender: () => this.scheduleRender(),\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig: initialLayoutGroupConfig,\n layoutScroll,\n layoutRoot,\n });\n }\n return MeasureLayout;\n }\n updateFeatures() {\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.options, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Make a target animatable by Popmotion. For instance, if we're\n * trying to animate width from 100px to 100vw we need to measure 100vw\n * in pixels to determine what we really need to animate to. This is also\n * pluggable to support Framer's custom value types like Color,\n * and CSS variables.\n */\n makeTargetAnimatable(target, canMutate = true) {\n return this.makeTargetAnimatableFromInstance(target, this.props, canMutate);\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listener = props[\"on\" + key];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n getVariantContext(startAtParent = false) {\n if (startAtParent) {\n return this.parent ? this.parent.getVariantContext() : undefined;\n }\n if (!this.isControllingVariants) {\n const context = this.parent\n ? this.parent.getVariantContext() || {}\n : {};\n if (this.props.initial !== undefined) {\n context.initial = this.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = this.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n if (value !== this.values.get(key)) {\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n }\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key) {\n var _a;\n return this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a;\n const { initial } = this.props;\n const valueFromInitial = typeof initial === \"string\" || typeof initial === \"object\"\n ? (_a = resolveVariantFromProps(this.props, initial)) === null || _a === void 0 ? void 0 : _a[key]\n : undefined;\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n}\n\nexport { VisualElement };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","import { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n const { willChange } = next;\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"10.16.4\", `Attempting to mix Framer Motion versions ${nextValue.version} with 10.16.4 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n if (isWillChangeMotionValue(willChange)) {\n willChange.remove(key);\n }\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n // TODO: Only update values that aren't being animated or even looked at\n !existingValue.hasAnimated && existingValue.set(nextValue);\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { getOrigin, checkTargetForNewValues } from '../utils/setters.mjs';\nimport { parseDomVariant } from './utils/parse-dom-variant.mjs';\nimport { VisualElement } from '../VisualElement.mjs';\n\nclass DOMVisualElement extends VisualElement {\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style ? props.style[key] : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n makeTargetAnimatableFromInstance({ transition, transitionEnd, ...target }, { transformValues }, isMounted) {\n let origin = getOrigin(target, transition || {}, this);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\n if (transformValues) {\n if (transitionEnd)\n transitionEnd = transformValues(transitionEnd);\n if (target)\n target = transformValues(target);\n if (origin)\n origin = transformValues(origin);\n }\n if (isMounted) {\n checkTargetForNewValues(this, target, origin);\n const parsed = parseDomVariant(this, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return {\n transition,\n transitionEnd,\n ...target,\n };\n }\n}\n\nexport { DOMVisualElement };\n","import { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariableName } from '../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, options, props) {\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps) {\n return scrapeMotionValuesFromProps(props, prevProps);\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current)\n this.current.textContent = `${latest}`;\n });\n }\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderHTML(instance, renderState, styleProp, projection);\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.isSVGTag = false;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n scrapeMotionValuesFromProps(props, prevProps) {\n return scrapeMotionValuesFromProps(props, prevProps);\n }\n build(renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","import { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options, { enableHardwareAcceleration: false })\n : new HTMLVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nexport { createDomVisualElement };\n","import { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\n\nconst layout = {\n layout: {\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { layout };\n","import { createMotionComponent } from '../../motion/index.mjs';\nimport { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { drag } from '../../motion/features/drag.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\nimport { layout } from '../../motion/features/layout.mjs';\n\nconst preloadedFeatures = {\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layout,\n};\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nconst motion = /*@__PURE__*/ createMotionProxy((Component, config) => createDomMotionConfig(Component, config, preloadedFeatures, createDomVisualElement));\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n * div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, preloadedFeatures, createDomVisualElement));\n}\n\nexport { createDomMotionComponent, motion };\n","import { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, { forwardMotionProps = false }, preloadedFeatures, createVisualElement) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n Component,\n };\n}\n\nexport { createDomMotionConfig };\n","import { useSnapshot } from 'valtio'\nimport uiState from '../data'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { isMobile } from 'react-device-detect'\nimport { useEffect, useState } from 'react'\nimport { windowSizeState } from '../utils/windowSize'\n\nconst Homepage = ({ event }) => {\n const { visible } = useSnapshot(uiState[event])\n\n const { mobileMode } = useSnapshot(windowSizeState)\n\n const [isEnterHover, setIsEnterHover] = useState(false)\n const [imageAnimateY, setImageAnimateY] = useState(0)\n const [duration, setDuration] = useState(true)\n\n const goVr = () => {\n let currentUrl = window.location.href\n var newUrl = currentUrl.replace('/start/start.html', '/vr/v0.html')\n window.location.href = newUrl\n }\n\n const imageData = [\n '../startMedia/index_p1.jpg',\n '../startMedia/index_p2.jpg',\n '../startMedia/index_p3.jpg',\n '../startMedia/index_p4.jpg',\n '../startMedia/index_p1.jpg'\n ]\n\n const imageDataPh = [\n '../startMedia/ph_index_p1.jpg',\n '../startMedia/ph_index_p2.jpg',\n '../startMedia/ph_index_p3.jpg',\n '../startMedia/ph_index_p4.jpg',\n '../startMedia/ph_index_p1.jpg'\n ]\n const imageList = mobileMode\n ? imageDataPh.map((el, index) => (\n \n ))\n : imageData.map((el, index) => (\n \n ))\n\n useEffect(() => {\n const interval = setInterval(() => {\n setImageAnimateY((prevY) => (prevY + 100) % 500)\n }, 2000)\n\n return () => {\n clearInterval(interval)\n }\n }, [])\n useEffect(() => {\n if (Number(imageAnimateY) === 400) {\n setTimeout(() => {\n setDuration(false)\n }, 800)\n setTimeout(() => {\n setImageAnimateY(0)\n }, 900)\n\n setTimeout(() => {\n setDuration(true)\n }, 1600)\n }\n }, [imageAnimateY])\n\n return (\n <>\n {/* 行動版 一般 */}\n \n {visible && mobileMode && (\n \n
\n \n {\n setIsEnterHover(true)\n }}\n onMouseLeave={() => {\n setIsEnterHover(false)\n }}\n onClick={goVr}\n />\n
\n \n {imageList}\n \n
\n \n\n \n
\n \n\n \n \n )}\n
\n\n {/* 行動版 手機橫向 */}\n \n \n \n \n {imageList}\n \n
\n \n \n
\n
\n \n {\n setIsEnterHover(true)\n }}\n onMouseLeave={() => {\n setIsEnterHover(false)\n }}\n onClick={goVr}\n />\n
\n \n \n
\n\n {/* 電腦版 */}\n \n {visible && !mobileMode && (\n \n \n \n {imageList}\n \n
\n \n \n
\n
\n \n {\n setIsEnterHover(true)\n }}\n onMouseLeave={() => {\n setIsEnterHover(false)\n }}\n onClick={goVr}\n />\n
\n \n \n )}\n
\n \n )\n}\n\nexport default Homepage\n","import { useSnapshot } from 'valtio'\nimport { windowSizeState } from './utils/windowSize'\n\nimport Homepage from './pages/Homepage'\nimport { useEffect } from 'react'\nimport uiState from './data'\n\nfunction App() {\n const { mobileMode } = useSnapshot(windowSizeState)\n\n useEffect(() => {\n if (mobileMode) {\n uiState.homepage.isMusicPlaying = false\n }\n }, [])\n\n return (\n
\n \n

\n 預先載入字體\n

\n

\n 預先載入字體\n

\n
\n )\n}\n\nexport default App\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["ex","React","require","React__default","UAParser","ClientUAInstance","browser","getBrowser","cpu","getCPU","device","getDevice","engine","getEngine","os","getOS","ua","getUA","setUa","userAgentString","setUA","parseUserAgent","userAgent","UserAgentInstance","UA","setUserAgent","console","error","UAHelper","Object","freeze","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","configurable","writable","defineProperty","key","_defineProperty","value","_extends","assign","arguments","source","hasOwnProperty","call","this","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","self","ReferenceError","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","n","toString","slice","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","DeviceTypes","undefined","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","InitialDeviceTypes","isMobile","isTablet","isBrowser","isSmartTV","isConsole","isWearable","setDefaults","getNavigatorInstance","window","navigator","isIOS13Check","type","nav","platform","maxTouchPoints","MSStream","mobilePayload","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread2","vendor","model","osVersion","version","isMobileType","_ref","isTabletType","_ref2","isMobileAndTabletType","_ref3","isSmartTVType","_ref4","isBrowserType","_ref5","isWearableType","_ref6","isConsoleType","_ref7","isEmbeddedType","_ref8","getMobileVendor","_ref9","getMobileModel","_ref10","getDeviceType","_ref11","isAndroidType","_ref12","isWindowsType","_ref13","isMacOsType","_ref14","isWinPhoneType","_ref15","isIOSType","_ref16","getOsVersion","_ref17","getOsName","_ref18","isChromeType","_ref19","isFirefoxType","_ref20","isChromiumType","_ref21","isEdgeType","_ref22","isYandexType","_ref23","isSafariType","_ref24","isMobileSafariType","_ref25","isOperaType","_ref26","isIEType","_ref27","isMIUIType","_ref28","isSamsungBrowserType","_ref29","getBrowserFullVersion","_ref30","getBrowserVersion","_ref31","major","getBrowserName","_ref32","getEngineName","_ref33","getEngineVersion","_ref34","isElectronType","toLowerCase","isEdgeChromiumType","getIOS13","getIPad13","getIphone13","getIPod13","getUseragent","userAg","buildSelectorsObject","options","isEmbedded","isMobileSafari","isChromium","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","isIE","osName","fullBrowserVersion","browserVersion","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","useDeviceData","hookUserAgent","exports","aa","ca","a","b","c","encodeURIComponent","da","Set","ea","fa","ha","add","ia","document","createElement","ja","ka","la","ma","v","d","e","f","g","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","z","split","ra","sa","toUpperCase","ta","pa","isNaN","qa","oa","removeAttribute","setAttribute","setAttributeNS","replace","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","A","Ma","Error","stack","trim","match","Na","Oa","prepareStackTrace","set","Reflect","construct","l","h","k","displayName","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","get","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","charAt","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","m","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","Math","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","id","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","String","fromCharCode","code","location","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Je","Ke","node","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","concat","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","capture","passive","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","join","uh","vh","index","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","create","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","splice","querySelectorAll","JSON","stringify","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","module","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","default","Children","map","count","toArray","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","pop","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","enumerize","enums","str1","str2","lowerize","str","rgxMapper","arrays","j","matches","regex","exec","strMapper","windowsVersionMap","ME","XP","Vista","RT","regexes","EDGE","extensions","getResult","_navigator","_ua","_uach","userAgentData","_rgxmap","mergedRegexes","_isSelfNav","_browser","brave","isBrave","_cpu","_device","mobile","standalone","_engine","_os","CPU","DEVICE","ENGINE","OS","define","$","jQuery","Zepto","parser","result","prop","inst","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","definition","chunkId","all","reduce","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","fn","head","toStringTag","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","iter","_createForOfIteratorHelper","allowArrayLike","it","normalCompletion","didErr","step","_e2","Proxy","values","_g2","deleteProperty","_step","_iterator","_step2","_iterator2","_step3","_iterator3","isObject","proxyStateMap","refSet","buildProxyFunction","objectIs","newProxy","handler","canProxy","Number","RegExp","ArrayBuffer","defaultHandlePromise","status","reason","snapCache","createSnapshot","handlePromise","snap","markToTrack","desc","_proxyStateMap$get2","target2","ensureVersion","preventExtensions","proxyCache","versionHolder","proxyFunction","initialObject","found","notifyUpdate","op","nextVersion","checkVersion","createPropListener","newOp","_toConsumableArray","propProxyStates","removePropListener","_a","entry","baseObject","prevValue","deleted","receiver","hasPrevValue","getUntracked","nextValue","childProxyState","propProxyState","remove","addPropListener","proxyObject","proxyState","nextCheckVersion","propVersion","defaultProxyFunction","proxy","snapshot","warn","_proxyState","use","ReactExports","useSyncExternalStoreExports","useAffectedDebugValue","affected","pathList","affectedToPathList","targetCache","useSnapshot","notifyInSync","sync","lastSnapshot","lastAffected","inRender","currSnapshot","unsub","ops","addListener","isListenerActive","removeListener","subscribe","nextSnapshot","isChanged","currAffected","createProxy","windowSizeState","currentWidth","innerWidth","currentHeight","innerHeight","ipadMini","mobileMode","phoneMode","isMobileRotate","vw","isLandscapePhone","timeoutID","handleResize","homepage","visible","useIsomorphicLayoutEffect","useIsMounted","noop","any","_classCallCheck","Constructor","_toPropertyKey","arg","hint","prim","toPrimitive","res","_createClass","protoProps","staticProps","Queue","scheduled","process","clear","stepsOrder","_createRenderBatcher","scheduleNextBatch","allowKeepAlive","runNextFrame","useDefaultElapsed","delta","timestamp","isProcessing","steps","acc","thisFrame","nextFrame","numToRun","flushNextFrame","toKeepAlive","schedule","addToCurrentFrame","cancel","frameData","createRenderStep","processStep","stepId","processBatch","max","keepAlive","immediate","createRenderBatcher","requestAnimationFrame","frame","cancelFrame","PresenceContext","useConstant","init","_inherits","subClass","superClass","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","sham","Boolean","Super","NewTarget","PopChildMeasure","_React$Component","_super","prevProps","childRef","isPresent","sizeRef","offsetHeight","offsetWidth","offsetTop","offsetLeft","PopChild","_size$current","motionPopId","sheet","insertRule","PresenceChild","initial","onExitComplete","custom","presenceAffectsLayout","presenceChildren","newChildrenMap","childId","register","_","LayoutGroupContext","warning","invariant","getChildKey","AnimatePresence","_ref$initial","exitBeforeEnter","_ref$presenceAffectsL","_ref$mode","forceRender","_useState2","forcedRenderCount","setForcedRenderCount","postRender","useForceUpdate","filteredChildren","filtered","onlyElements","childrenToRender","exitingChildren","presentChildren","allChildren","isInitialRender","updateChildLookup","presentKeys","targetKeys","numPresent","component","insertionIndex","exitingComponent","removeIndex","findIndex","presentChild","MotionConfigContext","transformPagePoint","isStatic","reducedMotion","MotionContext","LazyContext","strict","isRefObject","isVariantLabel","isAnimationControls","variantPriorityOrder","variantProps","isControllingVariants","animate","isVariantNode","variants","useCreateMotionContext","_getCurrentTreeVarian","inherit","getCurrentTreeVariants","variantLabelsAsDependency","featureProps","exit","drag","hover","tap","pan","inView","layout","featureDefinitions","_loop","isEnabled","SwitchLayoutGroupContext","motionComponentSymbol","createMotionComponent","preloadedFeatures","createVisualElement","useRender","useVisualState","features","_objectSpread","loadFeatures","ForwardRefComponent","externalRef","MeasureLayout","configAndProps","layoutId","useLayoutId","visualState","visualElement","parent","lazyContext","presenceContext","reducedMotionConfig","visualElementRef","renderer","blockInitialAnimation","update","canHandoff","HandoffAppearAnimations","animationState","animateChanges","updateFeatures","useVisualElement","initialLayoutGroupConfig","isStrict","mount","useMotionRef","layoutGroupId","createMotionProxy","createConfig","componentCache","_target","lowercaseSVGElements","isSVGComponent","scaleCorrectors","transformPropOrder","transformProps","isForcedMotionValue","startsWith","isMotionValue","getVelocity","translateAlias","transformPerspective","numTransforms","checkStringStartsWith","token","isCSSVariableName","isCSSVariableToken","getValueAsType","transform","clamp","parse","parseFloat","alpha","scale","sanitize","round","floatRegex","colorRegex","singleColorRegex","isString","createUnitType","unit","endsWith","degrees","percent","px","progressPercentage","int","numberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxWidth","maxHeight","right","bottom","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","rotate","rotateX","rotateY","rotateZ","scaleX","scaleY","scaleZ","skew","skewX","skewY","distance","translateX","translateY","translateZ","perspective","originX","originY","originZ","numOctaves","buildHTMLStyles","latestValues","transformTemplate","vars","transformOrigin","hasTransform","hasTransformOrigin","transformIsNone","valueType","valueAsType","transformIsDefault","_ref$enableHardwareAc","enableHardwareAcceleration","_ref$allowTransformNo","allowTransformNone","transformString","transformName","buildTransform","_transformOrigin$orig","_transformOrigin$orig2","_transformOrigin$orig3","createHtmlRenderState","copyRawValuesOnly","useStyle","useInitialMotionValues","transformValues","useHTMLProps","htmlProps","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","tabIndex","onTap","onTapStart","whileTap","validMotionProps","isValidMotionProp","isValidProp","shouldForward","calcOrigin","origin","dashKeys","array","camelKeys","buildSVGAttrs","isSVGTag","attrX","attrY","attrScale","pathLength","_ref$pathSpacing","pathSpacing","_ref$pathOffset","pathOffset","_excluded","viewBox","attrs","dimensions","pxOriginX","pxOriginY","calcSVGTransformOrigin","spacing","useDashCase","buildSVGPath","createSvgRenderState","useSVGProps","_isStatic","visualProps","rawStyles","createUseRender","forwardMotionProps","filteredProps","isDom","filterProps","elementProps","renderedChildren","camelToDash","renderHTML","styleProp","projection","getProjectionStyles","camelCaseAttributes","renderSVG","renderState","_styleProp","scrapeMotionValuesFromProps","newValues","scrapeMotionValuesFromProps$1","resolveVariantFromProps","currentValues","currentVelocity","isKeyframesTarget","isCustomValue","mix","toValue","resolveFinalValueInKeyframes","resolveMotionValue","unwrappedValue","makeUseVisualState","config","make","createRenderState","onMount","makeLatestValues","makeState","scrapeMotionValues","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","resolved","transitionEnd","valueTarget","svgMotionConfig","read","getBBox","getBoundingClientRect","htmlMotionConfig","addDomEvent","eventName","isPrimaryPointer","extractEventInfo","pointType","point","addPointerInfo","addPointerEvent","combineFunctions","pipe","_len","transformers","_key","createLock","lock","globalHorizontalLock","globalVerticalLock","getGlobalLock","openHorizontal","openVertical","isDragActive","openGestureLock","Feature","addHoverEvent","isActive","callbackName","info","getProps","whileHover","setActive","HoverGesture","_Feature","FocusGesture","_this","isFocusVisible","_this2","onFocus","onBlur","isNodeOrChild","parentElement","fireSyntheticPointerEvent","syntheticPointerEvent","PointerEvent","PressGesture","removeStartListeners","removeEndListeners","removeAccessibleListeners","startPointerPress","startEvent","startInfo","isPressing","removePointerUpListener","endEvent","endInfo","checkPressEnd","_this$node$getProps","onTapCancel","removePointerCancelListener","cancelEvent","cancelInfo","cancelPress","startPress","startAccessiblePress","removeKeydownListener","keydownEvent","keyupEvent","removeBlurListener","_this$node$getProps3","removePointerListener","removeFocusListener","observerCallbacks","observers","fireObserverCallback","fireAllObserverCallbacks","entries","observeIntersection","rootInteresectionObserver","root","lookupRoot","rootObservers","IntersectionObserver","initIntersectionObserver","observe","unobserve","thresholdNames","InViewFeature","hasEnteredView","isInView","_this$node$getProps$v","viewport","rootMargin","_viewport$amount","amount","once","threshold","isIntersecting","_this2$node$getProps","onViewportEnter","onViewportLeave","startObserver","_this$node","hasOptionsChanged","_ref$viewport","_ref2$viewport","prevViewport","hasViewportOptionChanged","gestureAnimations","shallowCompare","prevLength","resolveVariant","getCurrent","velocity","optimizedAppearDataAttribute","secondsToMilliseconds","seconds","millisecondsToSeconds","milliseconds","instantAnimationState","isBezierDefinition","easing","isWaapiSupportedEasing","supportedWaapiEasing","every","cubicBezierAsString","linear","ease","easeIn","easeOut","easeInOut","circIn","circOut","backIn","backOut","mapEasingToNativeEasing","calcBezier","a1","a2","subdivisionPrecision","subdivisionMaxIterations","cubicBezier","mX1","mY1","mX2","mY2","getTForX","aX","lowerBound","upperBound","currentX","currentT","abs","binarySubdivide","isEasingArray","mirrorEasing","reverseEasing","sin","acos","circInOut","backInOut","easingLookup","anticipate","pow","easingDefinitionToFunction","_definition","isColorString","testProp","splitColor","aName","bName","cName","_v$match2","rgbUnit","clampRgbUnit","rgba","red","green","blue","_ref$alpha","alpha$1","hex","parseInt","hsla","hue","saturation","lightness","to","progress","hueToRgb","mixLinearColor","fromExpo","sqrt","colorTypes","asRGBA","find","hslaToRgba","mixColor","fromRGBA","toRGBA","blended","cssVarTokeniser","countKey","colorTokeniser","numberTokeniser","tokenise","_info$values","tokenised","analyseComplexValue","originalValue","numVars","numColors","numNumbers","parseComplexValue","createTransformer","_analyseComplexValue","numValues","output","convertNumbersToZero","complex","_b","getAnimatableNone","parsed","transformer","mixImmediate","getMixer","mixComplex","mixArray","blendValue","fromThis","mixObject","template","originStats","targetStats","toFromDifference","mixNumber","createMixers","customMixer","mixers","mixerFactory","numMixers","mixer","easingFunction","interpolate","_ref$clamp","isClamp","inputLength","reverse","interpolator","progressInRange","defaultOffset","remaining","offsetProgress","fillOffset","keyframes","_ref$duration","duration","keyframeValues","times","_ref$ease","easingFunctions","absoluteTimes","convertOffsetToTimes","mapTimeToKeyframe","calculatedDuration","velocityPerSecond","frameDuration","velocitySampleDuration","calcGeneratorVelocity","resolveValue","prevT","safeMin","minDuration","maxDuration","minDamping","maxDamping","findSpring","envelope","derivative","_ref$bounce","bounce","_ref$velocity","_ref$mass","mass","dampingRatio","undampedFreq","exponentialDecay","calcAngularFreq","exp","initialGuess","rootIterations","approximateRoot","stiffness","damping","durationKeys","physicsKeys","isSpringType","spring","resolveSpring","restDelta","restSpeed","_getSpringOptions","springOptions","isResolvedFromDuration","derived","getSpringOptions","initialVelocity","initialDelta","undampedAngularFreq","isGranularScale","angularFreq","cos","dampedAngularFreq","freqForT","sinh","cosh","isBelowVelocityThreshold","isBelowDisplacementThreshold","inertia","_ref$power","power","_ref$timeConstant","timeConstant","_ref$bounceDamping","bounceDamping","_ref$bounceStiffness","bounceStiffness","modifyTarget","_ref$restDelta","nearestBoundary","amplitude","ideal","timeReachedBoundary","spring$1","calcDelta","calcLatest","applyFriction","latest","checkCatchBoundary","hasUpdatedFrame","frameloopDriver","passTimestamp","stop","maxGeneratorDuration","calcGeneratorDuration","generator","types","decay","tween","animateValue","resolveFinishedPromise","currentFinishedPromise","animationDriver","_ref$autoplay","autoplay","_ref$delay","_ref$driver","driver","keyframes$1","_ref$type","_ref$repeat","_ref$repeatDelay","repeatDelay","_ref$repeatType","repeatType","onPlay","onStop","onComplete","onUpdate","speed","hasStopped","updateFinishedPromise","mapNumbersToKeyframes","generatorFactory","mirroredGenerator","playState","holdTime","cancelTime","resolvedDuration","totalDuration","currentTime","tick","timeWithoutDelay","isInDelayPhase","elapsed","frameGenerator","currentIteration","iterationProgress","iterationIsOdd","isAnimationFinished","finish","stopAnimationDriver","play","controls","newTime","newSpeed","pause","complete","sample","supportsWaapi","Element","acceleratedValues","createAcceleratedAnimation","valueName","_options$duration","requiresPregeneratedKeyframes","sampleAnimation","pregeneratedKeyframes","keyframeOptions","fill","iterations","direction","animateStyle","owner","syncStart","timeline","cancelAnimation","safeCancel","onfinish","getFinalKeyframe","attachTimeline","playbackRate","setWithVelocity","underDampedSpring","keyframesTransition","getDefaultTransition","valueKey","isAnimatable","maxDefaults","applyDefaultFilter","_v$slice$split2","functionRegex","functions","defaultValueTypes","backgroundColor","outlineColor","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","WebkitFilter","getDefaultValueType","defaultValueType","isZeroValueString","isNone","getValueTransition","animateMotionValue","valueTransition","_transition$elapsed","isTargetAnimatable","defaultOrigin","animatableTemplateValue","noneKeyframeIndexes","getKeyframes","originKeyframe","targetKeyframe","isOriginAnimatable","when","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","createInstantAnimation","HTMLElement","acceleratedAnimation","isWillChangeMotionValue","isNumericalString","addUniqueItem","item","removeItem","SubscriptionManager","subscriptions","numSubscriptions","collectMotionValues","MotionValue","timeDelta","lastUpdated","canTrackVelocity","events","updateAndNotify","scheduleVelocityCheck","change","notify","velocityChange","renderRequest","velocityCheck","hasAnimated","subscription","on","unsubscribe","getSize","eventManagers","passiveEffect","stopPassiveEffect","startAnimation","_this3","animationStart","animationComplete","clearAnimation","animationCancel","clearListeners","motionValue","testValueType","dimensionValueTypes","findDimensionValueType","valueTypes","setMotionValue","hasValue","addValue","setTarget","makeTargetAnimatable","_ref$transitionEnd","getOriginFromTransition","animateTarget","_ref2$delay","transitionOverride","_visualElement$makeTa","_visualElement$makeTa2","willChange","animations","animationTypeState","getState","protectedKeys","needsAnimating","shouldBlock","shouldBlockAnimation","appearId","shouldReduceMotion","animateVariant","variant","_ref$transition","getAnimation","getChildAnimations","variantChildren","forwardDelay","_transition","_transition$delayChil","maxStaggerDuration","generateStaggerDuration","sort","sortByTreeOrder","animateChildren","first","sortNodePosition","reversePriorityOrder","numAnimationTypes","animateList","resolvedDefinition","animateVisualElement","createAnimationState","createTypeState","whileInView","whileDrag","whileFocus","buildResolvedTypeValues","changedActiveType","getVariantContext","removedKeys","encounteredKeys","removedVariantIndex","typeState","propIsVariant","activeDelta","isInherited","manuallyAnimateOnMount","prevProp","variantDidChange","checkVariantsDidChange","shouldAnimateType","definitionList","resolvedValues","_typeState$prevResolv","prevResolvedValues","allKeys","markToAnimate","fallbackAnimation","fallbackTarget","getBaseTarget","shouldAnimate","setAnimateFunction","makeAnimator","AnimationFeature","updateAnimationControlsSubscription","ExitAnimationFeature","_this$node$presenceCo","prevIsPresent","prevPresenceContext","exitAnimation","PanSession","handlers","lastMoveEvent","lastMoveEventInfo","updatePoint","getPanInfo","history","isPanStarted","isDistancePastThreshold","xDelta","yDelta","distance2D","_this$handlers","onStart","onMove","handlePointerMove","transformPoint","handlePointerUp","_this$handlers2","onEnd","onSessionEnd","panInfo","initialInfo","onSessionStart","removeListeners","subtractPoint","lastDevicePoint","startDevicePoint","timestampedPoint","lastPoint","calcLength","axis","isNear","maxDistance","calcAxisDelta","originPoint","translate","calcBoxDelta","calcRelativeAxis","relative","calcRelativeAxisPosition","calcRelativePosition","calcRelativeAxisConstraints","calcViewportAxisConstraints","layoutAxis","constraintsAxis","defaultElastic","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","label","createDelta","createBox","eachAxis","convertBoundingBoxToBox","isIdentityScale","hasScale","has2DTranslate","is2DTranslate","scalePoint","applyPointDelta","boxScale","applyAxisDelta","applyBoxDelta","box","snapToDefault","isInteger","translateAxis","transformAxis","transforms","scaleKey","originKey","axisOrigin","xKeys","yKeys","transformBox","measureViewportBox","topLeft","bottomRight","transformBoxPoints","elementDragControls","VisualElementDragControls","openGlobalLock","isDragging","currentDirection","constraints","hasMutatedConstraints","elastic","originEvent","_ref$snapToCursor","snapToCursor","panSession","stopAnimation","_this$getProps","dragPropagation","onDragStart","resolveConstraints","isAnimationBlocked","getAxisMotionValue","measuredAxis","layoutBox","_this$getProps2","dragDirectionLock","onDirectionLock","onDrag","lockThreshold","getCurrentDirection","updateAxis","getTransformPagePoint","onDragEnd","_this$visualElement","_point","shouldDrag","axisValue","applyConstraints","_this$getProps6","dragConstraints","prevConstraints","resolveRefConstraints","calcRelativeConstraints","resolveDragElastic","relativeConstraints","rebaseAxisConstraints","_this$getProps7","onMeasureDragConstraints","constraintsElement","constraintsBox","rootProjectionNode","viewportBox","scroll","measurePageBox","measuredConstraints","calcViewportConstraints","userConstraints","convertBoxToBoundingBox","_this$getProps8","dragMomentum","dragTransition","dragSnapToOrigin","onDragTransitionEnd","momentumAnimations","startAxisValueAnimation","_this4","dragKey","externalMotionValue","_this5","_projection$layout$la","_this6","_this$getProps9","boxProgress","sourceLength","targetLength","updateScroll","updateLayout","_this6$constraints$ax","_this7","stopPointerListener","_this7$getProps","_this7$getProps$dragL","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","scalePositionWithinConstraints","stopLayoutUpdateListener","hasLayoutChanged","_props$drag","_props$dragDirectionL","_props$dragPropagatio","_props$dragConstraint","_props$dragElastic","_props$dragMomentum","DragGesture","removeGroupControls","dragControls","addListeners","asyncHandler","PanGesture","removePointerDownListener","pointerDownEvent","session","createPanHandlers","onPanSessionStart","onPanStart","onPan","onPanEnd","onPointerDown","updateHandlers","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","pixelsToPercent","pixels","correctBorderRadius","correct","correctBoxShadow","treeScale","projectionDelta","original","shadow","xScale","yScale","averageScale","MeasureLayoutWithContext","_React__default$Compo","correctors","_this$props","layoutGroup","switchLayoutGroup","defaultScaleCorrectors","group","didUpdate","safeToRemove","setOptions","_this$props2","layoutDependency","willUpdate","promote","relegate","getStack","members","currentAnimation","isLead","_this$props3","promoteContext","scheduleCheckAfterUnmount","deregister","_usePresence","usePresence","_usePresence2","applyTo","boxShadow","borders","numBorders","asNumber","isPx","getRadius","radiusName","easeCrossfadeIn","compress","easeCrossfadeOut","copyAxisInto","originAxis","copyBoxInto","originBox","removePointDelta","removeAxisTransforms","sourceAxis","removeAxisDelta","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","boxEqualsRounded","NodeStack","scheduleRender","prevLead","lead","indexOfNode","member","preserveFollowOpacity","show","resumeFrom","preserveOpacity","animationValues","isUpdating","isLayoutDirty","crossfade","hide","resumingFrom","buildProjectionTransform","latestTransform","xTranslate","yTranslate","elementScaleX","elementScaleY","compareByDepth","depth","FlatTree","isDirty","transformAxes","projectionFrameData","totalNodes","resolvedTargetDeltas","recalculatedProjection","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","ProjectionNode","animationId","isTreeAnimating","isProjectionDirty","isSharedProjectionDirty","isTransformDirty","updateManuallyBlocked","updateBlockedByResize","isSVG","needsReset","shouldResetTransform","eventHandlers","hasTreeAnimated","updateScheduled","checkUpdateFailed","clearAllSnapshots","updateProjection","nodes","propagateDirtyNodes","resolveTargetDelta","calcProjection","cleanDirtyNodes","MotionDebug","record","hasProjected","isVisible","animationProgress","sharedNodes","path","subscriptionManager","args","SVGElement","_this$options","cancelDelay","resizeUnblockUpdate","checkElapsed","finishAnimation","registerSharedNode","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","relativeTarget","layoutTransition","defaultLayoutTransition","_visualElement$getPro","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","layoutRoot","setAnimationOrigin","animationOptions","isUpdateBlocked","resetRotation","shouldNotifyListeners","startUpdate","_this$options2","getTransformTemplate","prevTransformTemplateValue","updateSnapshot","notifyListeners","unblockUpdate","clearMeasurements","clearIsLayoutDirty","resetTransformStyle","notifyLayoutUpdate","preRender","clearSnapshot","removeLeadSnapshots","measure","alwaysMeasureLayout","prevLayout","layoutCorrected","phase","needsMeasurement","layoutScroll","isRoot","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","removeTransform","pageBox","removeElementScroll","roundAxis","measuredBox","boxWithoutScroll","rootScroll","transformOnly","withTransforms","boxWithoutTransform","targetDelta","scheduleUpdateProjection","relativeParent","resolvedRelativeTargetAt","forceRecalculation","getLead","isShared","attemptToResolveRelativeTarget","_this$options3","getClosestProjectingParent","forceRelativeParentToResolveTarget","relativeTargetOrigin","targetWithTransforms","applyTransform","isProjecting","canSkip","_this$options4","pendingAnimation","prevTreeScaleX","prevTreeScaleY","treePath","isSharedTransition","treeLength","applyTreeDeltas","projectionDeltaWithTransform","prevProjectionTransform","projectionTransform","notifyAll","snapshotLatestValues","mixedValues","prevRelativeTarget","relativeLayout","isSharedLayoutAnimation","isOnlyMember","shouldCrossfadeOpacity","hasOpacityCrossfade","mixTargetDelta","mixAxisDelta","setTargetDelta","mixAxis","mixBox","boxEquals","follow","opacityExit","borderLabel","followRadius","leadRadius","mixValues","motionValue$1","animateSingleValue","completeAnimation","exitAnimationComplete","shouldAnimatePositionOnly","animationType","xLength","yLength","initialPromotionConfig","shouldPreserveFollowOpacity","hasRotate","resetValues","setStaticValue","styles","visibility","pointerEvents","emptyStyles","valuesToRender","applyTransformsToTarget","_this$projectionDelta","_scaleCorrectors$key","corrected","num","hasListeners","_node$layout","measuredLayout","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","removeLeadSnapshot","userAgentContains","string","roundPoint","DocumentProjectionNode","HTMLProjectionNode","documentNode","getComputedStyle","position","splitCSSVariableRegex","maxDepth","getVariableValue","_parseCSSVariable","_match","parseCSSVariable","_parseCSSVariable2","getPropertyValue","trimmed","resolveCSSVariables","_objectDestructuringEmpty","positionalKeys","isPositionalKey","isNumOrPxType","getPosFromMatrix","matrix","pos","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","transformKeys","nonTranslationalTransformKeys","positionalValues","_ref3$paddingLeft","_ref3$paddingRight","_ref5$paddingTop","_ref5$paddingBottom","checkAndConvertChangedValueTypes","targetPositionalKeys","removedTransformValues","hasAttemptedToRemoveTransformValues","changedValueTypeKeys","toType","fromType","numKeyframes","fromIndex","removedTransforms","removeNonTranslationalTransform","jump","scrollY","pageYOffset","convertedTarget","changedKeys","originBbox","elementComputedStyle","targetBbox","convertChangedValueTypes","scrollTo","unitConversion","hasPositionalKey","prefersReducedMotion","hasReducedMotionListener","visualElementStore","featureNames","numFeatures","propEventHandlers","numVariantProps","VisualElement","valueSubscriptions","prevMotionValues","propEventSubscriptions","triggerBuild","renderInstance","baseTarget","initialValues","_this$scrapeMotionVal","initialMotionValues","_props","_prevProps","removeFromVariantTree","addVariantChild","bindToMotionValue","matchMedia","motionMediaQuery","setReducedMotionPreferences","initPrefersReducedMotion","valueIsTransform","removeOnChange","latestValue","removeOnRenderRequest","other","sortInstanceNodePosition","ProjectionNodeConstructor","renderedProps","_excluded2","_featureDefinitions$n","FeatureConstructor","MeasureLayoutComponent","feature","build","measureInstanceViewportBox","canMutate","makeTargetAnimatableFromInstance","existingValue","getStaticValue","removeValue","updateMotionValuesFromProps","handleChildMotionValue","getClosestVariantNode","closestVariantNode","removeValueFromRenderState","getBaseTargetFromProps","readValueFromInstance","valueFromInitial","_this$events$eventNam","_key2","DOMVisualElement","_VisualElement","transitionOrigin","getOrigin","newValueKeys","numNewValues","targetValue","readValue","setBaseTarget","checkTargetForNewValues","parseDomVariant","HTMLVisualElement","_DOMVisualElement","defaultType","computedStyle","childSubscription","_get","property","SVGVisualElement","createDomVisualElement","motion","_ref$forwardMotionPro","createDomMotionConfig","uiState","isEnterHover","setIsEnterHover","_useState4","imageAnimateY","setImageAnimateY","_useState6","setDuration","goVr","newUrl","imageList","_jsx","alt","className","interval","setInterval","prevY","clearInterval","_jsxs","_Fragment","div","onMouseEnter","onMouseLeave","isMusicPlaying","Homepage","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","getElementById","App","reportWebVitals"],"sourceRoot":""}