{"version":3,"file":"static/js/1421.9af0cb86.chunk.js","mappings":"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","sources":["../node_modules/@mui/base/ClickAwayListener/ClickAwayListener.js","../node_modules/@mui/material/AvatarGroup/AvatarGroup.js","../node_modules/@mui/utils/esm/visuallyHidden.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/flatten.js","../node_modules/framer-motion/dist/es/value/use-spring.mjs","../node_modules/framer-motion/dist/es/value/use-motion-value.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase<EventName> : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n  return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n  return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/base-ui/react-click-away-listener/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/base-ui/react-click-away-listener/components-api/#click-away-listener)\n */\nfunction ClickAwayListener(props) {\n  const {\n    children,\n    disableReactTree = false,\n    mouseEvent = 'onClick',\n    onClickAway,\n    touchEvent = 'onTouchEnd'\n  } = props;\n  const movedRef = React.useRef(false);\n  const nodeRef = React.useRef(null);\n  const activatedRef = React.useRef(false);\n  const syntheticEventRef = React.useRef(false);\n  React.useEffect(() => {\n    // Ensure that this component is not \"activated\" synchronously.\n    // https://github.com/facebook/react/issues/20074\n    setTimeout(() => {\n      activatedRef.current = true;\n    }, 0);\n    return () => {\n      activatedRef.current = false;\n    };\n  }, []);\n  const handleRef = useForkRef(\n  // @ts-expect-error TODO upstream fix\n  children.ref, nodeRef);\n\n  // The handler doesn't take event.defaultPrevented into account:\n  //\n  // event.preventDefault() is meant to stop default behaviors like\n  // clicking a checkbox to check it, hitting a button to submit a form,\n  // and hitting left arrow to move the cursor in a text input etc.\n  // Only special HTML elements have these default behaviors.\n  const handleClickAway = useEventCallback(event => {\n    // Given developers can stop the propagation of the synthetic event,\n    // we can only be confident with a positive value.\n    const insideReactTree = syntheticEventRef.current;\n    syntheticEventRef.current = false;\n    const doc = ownerDocument(nodeRef.current);\n\n    // 1. IE11 support, which trigger the handleClickAway even after the unbind\n    // 2. The child might render null.\n    // 3. Behave like a blur listener.\n    if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n      return;\n    }\n\n    // Do not act if user performed touchmove\n    if (movedRef.current) {\n      movedRef.current = false;\n      return;\n    }\n    let insideDOM;\n\n    // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n    if (event.composedPath) {\n      insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n    } else {\n      insideDOM = !doc.documentElement.contains(\n      // @ts-expect-error returns `false` as intended when not dispatched from a Node\n      event.target) || nodeRef.current.contains(\n      // @ts-expect-error returns `false` as intended when not dispatched from a Node\n      event.target);\n    }\n    if (!insideDOM && (disableReactTree || !insideReactTree)) {\n      onClickAway(event);\n    }\n  });\n\n  // Keep track of mouse/touch events that bubbled up through the portal.\n  const createHandleSynthetic = handlerName => event => {\n    syntheticEventRef.current = true;\n    const childrenPropsHandler = children.props[handlerName];\n    if (childrenPropsHandler) {\n      childrenPropsHandler(event);\n    }\n  };\n  const childrenProps = {\n    ref: handleRef\n  };\n  if (touchEvent !== false) {\n    childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n  }\n  React.useEffect(() => {\n    if (touchEvent !== false) {\n      const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n      const doc = ownerDocument(nodeRef.current);\n      const handleTouchMove = () => {\n        movedRef.current = true;\n      };\n      doc.addEventListener(mappedTouchEvent, handleClickAway);\n      doc.addEventListener('touchmove', handleTouchMove);\n      return () => {\n        doc.removeEventListener(mappedTouchEvent, handleClickAway);\n        doc.removeEventListener('touchmove', handleTouchMove);\n      };\n    }\n    return undefined;\n  }, [handleClickAway, touchEvent]);\n  if (mouseEvent !== false) {\n    childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n  }\n  React.useEffect(() => {\n    if (mouseEvent !== false) {\n      const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n      const doc = ownerDocument(nodeRef.current);\n      doc.addEventListener(mappedMouseEvent, handleClickAway);\n      return () => {\n        doc.removeEventListener(mappedMouseEvent, handleClickAway);\n      };\n    }\n    return undefined;\n  }, [handleClickAway, mouseEvent]);\n  return /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n  });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit TypeScript types and run \"yarn proptypes\"  |\n  // ----------------------------------------------------------------------\n  /**\n   * The wrapped element.\n   */\n  children: elementAcceptingRef.isRequired,\n  /**\n   * If `true`, the React tree is ignored and only the DOM tree is considered.\n   * This prop changes how portaled elements are handled.\n   * @default false\n   */\n  disableReactTree: PropTypes.bool,\n  /**\n   * The mouse event to listen to. You can disable the listener by providing `false`.\n   * @default 'onClick'\n   */\n  mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n  /**\n   * Callback fired when a \"click away\" event is detected.\n   */\n  onClickAway: PropTypes.func.isRequired,\n  /**\n   * The touch event to listen to. You can disable the listener by providing `false`.\n   * @default 'onTouchEnd'\n   */\n  touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n  // eslint-disable-next-line\n  ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"componentsProps\", \"max\", \"slotProps\", \"spacing\", \"total\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { isFragment } from 'react-is';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Avatar, { avatarClasses } from '../Avatar';\nimport avatarGroupClasses, { getAvatarGroupUtilityClass } from './avatarGroupClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst SPACINGS = {\n  small: -16,\n  medium: null\n};\nconst useUtilityClasses = ownerState => {\n  const {\n    classes\n  } = ownerState;\n  const slots = {\n    root: ['root'],\n    avatar: ['avatar']\n  };\n  return composeClasses(slots, getAvatarGroupUtilityClass, classes);\n};\nconst AvatarGroupRoot = styled('div', {\n  name: 'MuiAvatarGroup',\n  slot: 'Root',\n  overridesResolver: (props, styles) => _extends({\n    [`& .${avatarGroupClasses.avatar}`]: styles.avatar\n  }, styles.root)\n})(({\n  theme\n}) => ({\n  [`& .${avatarClasses.root}`]: {\n    border: `2px solid ${(theme.vars || theme).palette.background.default}`,\n    boxSizing: 'content-box',\n    marginLeft: -8,\n    '&:last-child': {\n      marginLeft: 0\n    }\n  },\n  display: 'flex',\n  flexDirection: 'row-reverse'\n}));\nconst AvatarGroupAvatar = styled(Avatar, {\n  name: 'MuiAvatarGroup',\n  slot: 'Avatar',\n  overridesResolver: (props, styles) => styles.avatar\n})(({\n  theme\n}) => ({\n  border: `2px solid ${(theme.vars || theme).palette.background.default}`,\n  boxSizing: 'content-box',\n  marginLeft: -8,\n  '&:last-child': {\n    marginLeft: 0\n  }\n}));\nconst AvatarGroup = /*#__PURE__*/React.forwardRef(function AvatarGroup(inProps, ref) {\n  var _slotProps$additional;\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiAvatarGroup'\n  });\n  const {\n      children: childrenProp,\n      className,\n      component = 'div',\n      componentsProps = {},\n      max = 5,\n      slotProps = {},\n      spacing = 'medium',\n      total,\n      variant = 'circular'\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  let clampedMax = max < 2 ? 2 : max;\n  const ownerState = _extends({}, props, {\n    max,\n    spacing,\n    component,\n    variant\n  });\n  const classes = useUtilityClasses(ownerState);\n  const children = React.Children.toArray(childrenProp).filter(child => {\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The AvatarGroup component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n    return /*#__PURE__*/React.isValidElement(child);\n  });\n  const totalAvatars = total || children.length;\n  if (totalAvatars === clampedMax) {\n    clampedMax += 1;\n  }\n  clampedMax = Math.min(totalAvatars + 1, clampedMax);\n  const maxAvatars = Math.min(children.length, clampedMax - 1);\n  const extraAvatars = Math.max(totalAvatars - clampedMax, totalAvatars - maxAvatars, 0);\n  const marginLeft = spacing && SPACINGS[spacing] !== undefined ? SPACINGS[spacing] : -spacing;\n  const additionalAvatarSlotProps = (_slotProps$additional = slotProps.additionalAvatar) != null ? _slotProps$additional : componentsProps.additionalAvatar;\n  return /*#__PURE__*/_jsxs(AvatarGroupRoot, _extends({\n    as: component,\n    ownerState: ownerState,\n    className: clsx(classes.root, className),\n    ref: ref\n  }, other, {\n    children: [extraAvatars ? /*#__PURE__*/_jsxs(AvatarGroupAvatar, _extends({\n      ownerState: ownerState,\n      variant: variant\n    }, additionalAvatarSlotProps, {\n      className: clsx(classes.avatar, additionalAvatarSlotProps == null ? void 0 : additionalAvatarSlotProps.className),\n      style: _extends({\n        marginLeft\n      }, additionalAvatarSlotProps == null ? void 0 : additionalAvatarSlotProps.style),\n      children: [\"+\", extraAvatars]\n    })) : null, children.slice(0, maxAvatars).reverse().map((child, index) => {\n      return /*#__PURE__*/React.cloneElement(child, {\n        className: clsx(child.props.className, classes.avatar),\n        style: _extends({\n          // Consistent with \"&:last-child\" styling for the default spacing,\n          // we do not apply custom marginLeft spacing on the last child\n          marginLeft: index === maxAvatars - 1 ? undefined : marginLeft\n        }, child.props.style),\n        variant: child.props.variant || variant\n      });\n    })]\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? AvatarGroup.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * The avatars to stack.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: PropTypes.elementType,\n  /**\n   * The extra props for the slot components.\n   * You can override the existing props or add new ones.\n   *\n   * This prop is an alias for the `slotProps` prop.\n   * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n   *\n   * @default {}\n   */\n  componentsProps: PropTypes.shape({\n    additionalAvatar: PropTypes.object\n  }),\n  /**\n   * Max avatars to show before +x.\n   * @default 5\n   */\n  max: chainPropTypes(PropTypes.number, props => {\n    if (props.max < 2) {\n      return new Error(['MUI: The prop `max` should be equal to 2 or above.', 'A value below is clamped to 2.'].join('\\n'));\n    }\n    return null;\n  }),\n  /**\n   * The extra props for the slot components.\n   * You can override the existing props or add new ones.\n   *\n   * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n   *\n   * @default {}\n   */\n  slotProps: PropTypes.shape({\n    additionalAvatar: PropTypes.object\n  }),\n  /**\n   * Spacing between avatars.\n   * @default 'medium'\n   */\n  spacing: PropTypes.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.number]),\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n  /**\n   * The total number of avatars. Used for calculating the number of extra avatars.\n   * @default children.length\n   */\n  total: PropTypes.number,\n  /**\n   * The variant to use.\n   * @default 'circular'\n   */\n  variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default AvatarGroup;","const visuallyHidden = {\n  border: 0,\n  clip: 'rect(0 0 0 0)',\n  height: '1px',\n  margin: -1,\n  overflow: 'hidden',\n  padding: 0,\n  position: 'absolute',\n  whiteSpace: 'nowrap',\n  width: '1px'\n};\nexport default visuallyHidden;","var arrayPush = require('./_arrayPush'),\n    isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n  var index = -1,\n      length = array.length;\n\n  predicate || (predicate = isFlattenable);\n  result || (result = []);\n\n  while (++index < length) {\n    var value = array[index];\n    if (depth > 0 && predicate(value)) {\n      if (depth > 1) {\n        // Recursively flatten arrays (susceptible to call stack limits).\n        baseFlatten(value, depth - 1, predicate, isStrict, result);\n      } else {\n        arrayPush(result, value);\n      }\n    } else if (!isStrict) {\n      result[result.length] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n  return isArray(value) || isArguments(value) ||\n    !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","import { useContext, useRef, useInsertionEffect } from 'react';\nimport { isMotionValue } from './utils/is-motion-value.mjs';\nimport { useMotionValue } from './use-motion-value.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\nimport { animateValue } from '../animation/animators/js/index.mjs';\nimport { millisecondsToSeconds } from '../utils/time-conversion.mjs';\nimport { frameData } from '../frameloop/frame.mjs';\n\n/**\n * Creates a `MotionValue` that, when `set`, will use a spring animation to animate to its new state.\n *\n * It can either work as a stand-alone `MotionValue` by initialising it with a value, or as a subscriber\n * to another `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useSpring(0, { stiffness: 300 })\n * const y = useSpring(x, { damping: 10 })\n * ```\n *\n * @param inputValue - `MotionValue` or number. If provided a `MotionValue`, when the input `MotionValue` changes, the created `MotionValue` will spring towards that value.\n * @param springConfig - Configuration options for the spring.\n * @returns `MotionValue`\n *\n * @public\n */\nfunction useSpring(source, config = {}) {\n    const { isStatic } = useContext(MotionConfigContext);\n    const activeSpringAnimation = useRef(null);\n    const value = useMotionValue(isMotionValue(source) ? source.get() : source);\n    const stopAnimation = () => {\n        if (activeSpringAnimation.current) {\n            activeSpringAnimation.current.stop();\n        }\n    };\n    useInsertionEffect(() => {\n        return value.attach((v, set) => {\n            /**\n             * A more hollistic approach to this might be to use isStatic to fix VisualElement animations\n             * at that level, but this will work for now\n             */\n            if (isStatic)\n                return set(v);\n            stopAnimation();\n            activeSpringAnimation.current = animateValue({\n                keyframes: [value.get(), v],\n                velocity: value.getVelocity(),\n                type: \"spring\",\n                restDelta: 0.001,\n                restSpeed: 0.01,\n                ...config,\n                onUpdate: set,\n            });\n            /**\n             * If we're between frames, resync the animation to the frameloop.\n             */\n            if (!frameData.isProcessing) {\n                const delta = performance.now() - frameData.timestamp;\n                if (delta < 30) {\n                    activeSpringAnimation.current.time =\n                        millisecondsToSeconds(delta);\n                }\n            }\n            return value.get();\n        }, stopAnimation);\n    }, [JSON.stringify(config)]);\n    useIsomorphicLayoutEffect(() => {\n        if (isMotionValue(source)) {\n            return source.on(\"change\", (v) => value.set(parseFloat(v)));\n        }\n    }, [value]);\n    return value;\n}\n\nexport { useSpring };\n","import { useContext, useState, useEffect } from 'react';\nimport { motionValue } from './index.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\n\n/**\n * Creates a `MotionValue` to track the state and velocity of a value.\n *\n * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.\n *\n * ```jsx\n * export const MyComponent = () => {\n *   const scale = useMotionValue(1)\n *\n *   return <motion.div style={{ scale }} />\n * }\n * ```\n *\n * @param initial - The initial state.\n *\n * @public\n */\nfunction useMotionValue(initial) {\n    const value = useConstant(() => motionValue(initial));\n    /**\n     * If this motion value is being used in static mode, like on\n     * the Framer canvas, force components to rerender when the motion\n     * value is updated.\n     */\n    const { isStatic } = useContext(MotionConfigContext);\n    if (isStatic) {\n        const [, setLatest] = useState(initial);\n        useEffect(() => value.on(\"change\", setLatest), []);\n    }\n    return value;\n}\n\nexport { useMotionValue };\n"],"names":["mapEventPropToEvent","eventProp","substring","toLowerCase","ClickAwayListener","props","children","_props$disableReactTr","disableReactTree","_props$mouseEvent","mouseEvent","onClickAway","_props$touchEvent","touchEvent","movedRef","React","nodeRef","activatedRef","syntheticEventRef","setTimeout","current","handleRef","useForkRef","ref","handleClickAway","useEventCallback","event","insideReactTree","doc","ownerDocument","documentElement","clientWidth","clientX","clientHeight","clientY","clickedRootScrollbar","composedPath","indexOf","contains","target","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","handleTouchMove","addEventListener","removeEventListener","mappedMouseEvent","_jsx","_excluded","SPACINGS","small","medium","AvatarGroupRoot","styled","name","slot","overridesResolver","styles","_extends","_defineProperty","concat","avatarGroupClasses","avatar","root","_ref","_ref2","theme","avatarClasses","border","vars","palette","background","default","boxSizing","marginLeft","AvatarGroupAvatar","Avatar","_ref3","AvatarGroup","inProps","_slotProps$additional","useThemeProps","childrenProp","className","_props$component","component","_props$componentsProp","componentsProps","_props$max","max","_props$slotProps","slotProps","_props$spacing","spacing","total","_props$variant","variant","other","_objectWithoutPropertiesLoose","clampedMax","ownerState","classes","composeClasses","getAvatarGroupUtilityClass","useUtilityClasses","toArray","filter","child","totalAvatars","length","Math","min","maxAvatars","extraAvatars","undefined","additionalAvatarSlotProps","additionalAvatar","_jsxs","as","clsx","style","slice","reverse","map","index","clip","height","margin","overflow","padding","position","whiteSpace","width","arrayPush","require","isFlattenable","module","exports","baseFlatten","array","depth","predicate","isStrict","result","value","Symbol","isArguments","isArray","spreadableSymbol","isConcatSpreadable","useSpring","source","config","arguments","isStatic","useContext","MotionConfigContext","activeSpringAnimation","useRef","initial","useConstant","motionValue","_useState","useState","setLatest","_slicedToArray","useEffect","on","useMotionValue","isMotionValue","get","stopAnimation","stop","useInsertionEffect","attach","v","set","animateValue","_objectSpread","keyframes","velocity","getVelocity","type","restDelta","restSpeed","onUpdate","frameData","isProcessing","delta","performance","now","timestamp","time","millisecondsToSeconds","JSON","stringify","useIsomorphicLayoutEffect","parseFloat"],"sourceRoot":""}