@makeswift/runtime 0.0.0-e76fc43 → 0.0.0-e77889f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.js +1 -0
- package/dist/actions.cjs.js +16 -1
- package/dist/actions.cjs.js.map +1 -1
- package/dist/actions.es.js +14 -2
- package/dist/actions.es.js.map +1 -1
- package/dist/api.cjs.js +6 -0
- package/dist/api.cjs.js.map +1 -0
- package/dist/api.es.js +2 -0
- package/dist/api.es.js.map +1 -0
- package/dist/components.cjs.js +37 -21632
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +9 -21580
- package/dist/components.es.js.map +1 -1
- package/dist/constants.cjs.js +146 -0
- package/dist/constants.cjs.js.map +1 -0
- package/dist/constants.es.js +145 -0
- package/dist/constants.es.js.map +1 -0
- package/dist/descriptors.cjs.js +30 -0
- package/dist/descriptors.cjs.js.map +1 -1
- package/dist/descriptors.es.js +1 -1
- package/dist/main.cjs.js +3 -0
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +1 -1
- package/dist/react-builder-preview.cjs.js +36 -3
- package/dist/react-builder-preview.cjs.js.map +1 -1
- package/dist/react-builder-preview.es.js +38 -5
- package/dist/react-builder-preview.es.js.map +1 -1
- package/dist/react.cjs.js +6 -0
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.cjs2.js +33566 -538
- package/dist/react.cjs2.js.map +1 -1
- package/dist/react.es.js +6 -0
- package/dist/react.es.js.map +1 -1
- package/dist/react.es2.js +33510 -533
- package/dist/react.es2.js.map +1 -1
- package/dist/types/api/constants.d.ts +4 -0
- package/dist/types/api/constants.d.ts.map +1 -0
- package/dist/types/api/generated/graphql.d.ts +61 -0
- package/dist/types/api/generated/graphql.d.ts.map +1 -0
- package/dist/types/api/getFragment.d.ts +4 -0
- package/dist/types/api/getFragment.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +3 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/react.d.ts +6 -0
- package/dist/types/api/react.d.ts.map +1 -0
- package/dist/types/api/types.d.ts +4 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/codegen-loader.d.ts +2 -0
- package/dist/types/codegen-loader.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/Box.d.ts +5 -2
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/index.d.ts +1 -1
- package/dist/types/components/builtin/Box/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Button/Button.d.ts +5 -2
- package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
- package/dist/types/components/builtin/Button/index.d.ts +1 -1
- package/dist/types/components/builtin/Button/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/Carousel.d.ts +5 -2
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/index.d.ts +1 -1
- package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/Countdown.d.ts +5 -2
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/index.d.ts +1 -1
- package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Divider/Divider.d.ts +5 -2
- package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
- package/dist/types/components/builtin/Divider/index.d.ts +1 -1
- package/dist/types/components/builtin/Divider/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Embed/Embed.d.ts +5 -2
- package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
- package/dist/types/components/builtin/Embed/index.d.ts +1 -1
- package/dist/types/components/builtin/Embed/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Image/Image.d.ts +5 -2
- package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
- package/dist/types/components/builtin/Image/index.d.ts +1 -1
- package/dist/types/components/builtin/Image/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/Navigation.d.ts +5 -2
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/index.d.ts +1 -1
- package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/Root.d.ts +5 -2
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/index.d.ts +1 -1
- package/dist/types/components/builtin/Root/index.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +5 -2
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/index.d.ts +1 -1
- package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Text/Text.d.ts +5 -2
- package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
- package/dist/types/components/builtin/Text/index.d.ts +1 -1
- package/dist/types/components/builtin/Text/index.d.ts.map +1 -1
- package/dist/types/components/builtin/index.d.ts +2 -0
- package/dist/types/components/builtin/index.d.ts.map +1 -1
- package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -1
- package/dist/types/components/hooks/useBorder.d.ts.map +1 -1
- package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -1
- package/dist/types/components/hooks/useColor.d.ts.map +1 -1
- package/dist/types/components/hooks/useFile.d.ts.map +1 -1
- package/dist/types/components/hooks/usePage.d.ts.map +1 -1
- package/dist/types/components/hooks/useTypography.d.ts.map +1 -1
- package/dist/types/generated/graphql.d.ts +20 -0
- package/dist/types/generated/graphql.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/runtimes/react.d.ts +13 -7
- package/dist/types/runtimes/react.d.ts.map +1 -1
- package/dist/types/state/actions.d.ts +20 -1
- package/dist/types/state/actions.d.ts.map +1 -1
- package/dist/types/state/modules/makeswift-api-client.d.ts +17 -0
- package/dist/types/state/modules/makeswift-api-client.d.ts.map +1 -0
- package/dist/types/state/react-builder-preview.d.ts +3 -1
- package/dist/types/state/react-builder-preview.d.ts.map +1 -1
- package/dist/types/types.d.ts +2 -0
- package/dist/types/types.d.ts.map +1 -0
- package/package.json +19 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.cjs.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../../../node_modules/hey-listen/dist/hey-listen.es.js","../../../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../../../node_modules/framer-motion/dist/es/motion/features/use-features.mjs","../../../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/PresenceContext.mjs","../../../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-reduced-motion.mjs","../../../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../../../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../../../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../../../node_modules/framer-motion/dist/es/render/utils/variants.mjs","../../../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../../../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../../../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../../../node_modules/framesync/dist/es/on-next-frame.mjs","../../../node_modules/framesync/dist/es/create-render-step.mjs","../../../node_modules/framesync/dist/es/index.mjs","../../../node_modules/popmotion/dist/es/utils/clamp.mjs","../../../node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","../../../node_modules/popmotion/dist/es/animations/generators/spring.mjs","../../../node_modules/popmotion/dist/es/utils/progress.mjs","../../../node_modules/popmotion/dist/es/utils/mix.mjs","../../../node_modules/style-value-types/dist/es/utils.mjs","../../../node_modules/style-value-types/dist/es/numbers/index.mjs","../../../node_modules/style-value-types/dist/es/numbers/units.mjs","../../../node_modules/style-value-types/dist/es/color/utils.mjs","../../../node_modules/style-value-types/dist/es/color/hsla.mjs","../../../node_modules/style-value-types/dist/es/color/rgba.mjs","../../../node_modules/style-value-types/dist/es/color/hex.mjs","../../../node_modules/style-value-types/dist/es/color/index.mjs","../../../node_modules/style-value-types/dist/es/complex/index.mjs","../../../node_modules/style-value-types/dist/es/complex/filter.mjs","../../../node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","../../../node_modules/popmotion/dist/es/utils/mix-color.mjs","../../../node_modules/popmotion/dist/es/utils/inc.mjs","../../../node_modules/popmotion/dist/es/utils/pipe.mjs","../../../node_modules/popmotion/dist/es/utils/mix-complex.mjs","../../../node_modules/popmotion/dist/es/utils/interpolate.mjs","../../../node_modules/popmotion/dist/es/easing/utils.mjs","../../../node_modules/popmotion/dist/es/easing/index.mjs","../../../node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","../../../node_modules/popmotion/dist/es/animations/generators/decay.mjs","../../../node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","../../../node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","../../../node_modules/popmotion/dist/es/animations/index.mjs","../../../node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","../../../node_modules/popmotion/dist/es/animations/inertia.mjs","../../../node_modules/popmotion/dist/es/utils/is-point.mjs","../../../node_modules/popmotion/dist/es/utils/is-point-3d.mjs","../../../node_modules/popmotion/dist/es/utils/distance.mjs","../../../node_modules/popmotion/dist/es/easing/cubic-bezier.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/value/utils/is-motion-value.mjs","../../../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../../../node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../../../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../../../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../../../node_modules/framer-motion/dist/es/animation/utils/default-transitions.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/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/use-instant-transition-state.mjs","../../../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../../../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../../../node_modules/framer-motion/dist/es/animation/animate.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/utils/has-transform.mjs","../../../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../../../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../../../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../../../node_modules/framer-motion/dist/es/projection/geometry/models.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/scale-correction.mjs","../../../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../../../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../../../node_modules/framer-motion/dist/es/render/html/utils/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/value/utils/resolve-motion-value.mjs","../../../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../../../node_modules/framer-motion/dist/es/projection/node/id.mjs","../../../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../../../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../../../node_modules/framer-motion/dist/es/motion/features/use-projection.mjs","../../../node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../../../node_modules/framer-motion/dist/es/motion/index.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/motion/utils/is-forced-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/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/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/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/animation/utils/is-animation-controls.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/render/dom/utils/create-config.mjs","../../../node_modules/framer-motion/dist/es/render/utils/types.mjs","../../../node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../../../node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../../../node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../../../node_modules/framer-motion/dist/es/events/event-info.mjs","../../../node_modules/framer-motion/dist/es/events/utils.mjs","../../../node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../../../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../../../node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../../../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../../../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../../../node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../../../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../../../node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../../../node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../../../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../../../node_modules/framer-motion/dist/es/utils/use-id.mjs","../../../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../../../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../../../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../../../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../../../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../../../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../../../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.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/render/utils/animation.mjs","../../../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../../../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../../../node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../../../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../../../node_modules/framer-motion/dist/es/projection/geometry/conversion.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/use-drag.mjs","../../../node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../../../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../../../node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","../../../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../../../node_modules/framer-motion/dist/es/render/index.mjs","../../../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../../../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/render/html/visual-element.mjs","../../../node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","../../../node_modules/framer-motion/dist/es/render/dom/create-visual-element.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/motion/features/layout/index.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/render/dom/motion.mjs","../../../node_modules/framer-motion/dist/es/animation/animation-controls.mjs","../../../node_modules/framer-motion/dist/es/animation/use-animation.mjs","../src/components/builtin/Box/components/Placeholder/index.tsx","../src/components/utils/queries.ts","../src/components/utils/isNonNullable.ts","../src/components/hooks/useBackgrounds.ts","../src/components/hooks/useBorder.ts","../src/components/hooks/useBoxShadow.ts","../src/components/hooks/useColor.ts","../src/components/hooks/useFile.ts","../src/utils/keys.ts","../src/utils/coalesce.ts","../src/utils/shallowMerge.ts","../src/components/utils/devices.ts","../src/components/hooks/useMediaQuery.ts","../src/components/hooks/usePage.ts","../src/components/builtin/Box/animations.tsx","../src/components/utils/columns.ts","../src/components/utils/colorToString.ts","../src/components/utils/cssMediaRules.ts","../src/utils/clamp.ts","../src/components/shared/BackgroundsContainer/components/Parallax/index.tsx","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../../../node_modules/react-player/lib/props.js","../../../node_modules/load-script/index.js","../../../node_modules/deepmerge/dist/cjs.js","../../../node_modules/react-player/lib/utils.js","../../../node_modules/react-player/lib/Player.js","../../../node_modules/react-player/lib/singlePlayer.js","../../../node_modules/react-player/lib/players/YouTube.js","../../../node_modules/react-player/lib/players/SoundCloud.js","../../../node_modules/react-player/lib/players/Vimeo.js","../../../node_modules/react-player/lib/players/Facebook.js","../../../node_modules/react-player/lib/players/Streamable.js","../../../node_modules/react-player/lib/players/Wistia.js","../../../node_modules/react-player/lib/players/Twitch.js","../../../node_modules/react-player/lib/players/DailyMotion.js","../../../node_modules/react-player/lib/players/Mixcloud.js","../../../node_modules/react-player/lib/players/FilePlayer.js","../../../node_modules/react-player/lib/players/index.js","../../../node_modules/react-player/lib/Preview.js","../../../node_modules/react-player/lib/preload.js","../../../node_modules/react-player/lib/ReactPlayer.js","../src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.tsx","../src/components/shared/BackgroundsContainer/components/Backgrounds/index.tsx","../src/components/shared/BackgroundsContainer/index.tsx","../src/components/builtin/Box/Box.tsx","../../../node_modules/color-name/index.js","../../../node_modules/is-arrayish/index.js","../../../node_modules/simple-swizzle/index.js","../../../node_modules/color-string/index.js","../../../node_modules/color-convert/node_modules/color-name/index.js","../../../node_modules/color-convert/conversions.js","../../../node_modules/color-convert/route.js","../../../node_modules/color-convert/index.js","../../../node_modules/color/index.js","../../../node_modules/compute-scroll-into-view/dist/index.module.js","../../../node_modules/scroll-into-view-if-needed/es/index.js","../src/components/shared/Link/index.tsx","../src/components/builtin/Button/Button.tsx","../../../node_modules/react-use-gesture/dist/reactusegesture.esm.js","../../../node_modules/@popmotion/popcorn/node_modules/tslib/tslib.es6.js","../../../node_modules/@popmotion/popcorn/node_modules/style-value-types/dist/style-value-types.es.js","../../../node_modules/@popmotion/popcorn/dist/popcorn.es.js","../src/components/utils/placeholders.ts","../src/components/builtin/Image/Image.tsx","../src/components/builtin/Carousel/Carousel.tsx","../src/components/builtin/Countdown/Countdown.tsx","../src/components/builtin/Divider/Divider.tsx","../src/components/builtin/Embed/Embed.tsx","../src/components/icons/mobile-menu-28.svg","../src/components/shared/GutterContainer/index.tsx","../src/components/builtin/Navigation/components/LinksPlaceholder/index.tsx","../src/components/icons/caret-down-8.svg","../src/components/icons/plus-8.svg","../src/components/icons/arrow-down-8.svg","../src/components/icons/chevron-down-8.svg","../src/components/builtin/Navigation/components/DropDownButton/index.tsx","../src/components/icons/times-16.svg","../src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.tsx","../src/components/builtin/Navigation/components/MobileMenu/index.tsx","../src/components/builtin/Navigation/Navigation.tsx","../node_modules/polished/dist/polished.es.js","../src/components/builtin/Root/components/Placeholder/index.tsx","../src/components/builtin/Root/Root.tsx","../src/components/icons/logo-angellist-20.svg","../src/components/icons/logo-codepen-20.svg","../src/components/icons/logo-dribbble-20.svg","../src/components/icons/logo-facebook-20.svg","../src/components/icons/logo-github-20.svg","../src/components/icons/logo-instagram-20.svg","../src/components/icons/logo-linkedin-20.svg","../src/components/icons/logo-medium-20.svg","../src/components/icons/logo-pinterest-20.svg","../src/components/icons/logo-reddit-20.svg","../src/components/icons/logo-rss-20.svg","../src/components/icons/logo-snapchat-20.svg","../src/components/icons/logo-soundcloud-20.svg","../src/components/icons/logo-spotify-20.svg","../src/components/icons/logo-telegram-20.svg","../src/components/icons/logo-tumblr-20.svg","../src/components/icons/logo-twitch-20.svg","../src/components/icons/logo-twitter-20.svg","../src/components/icons/logo-whatsapp-20.svg","../src/components/icons/logo-vimeo-20.svg","../src/components/icons/logo-yelp-20.svg","../src/components/icons/logo-youtube-20.svg","../src/components/builtin/SocialLinks/options.tsx","../src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.tsx","../src/components/builtin/SocialLinks/SocialLinks.tsx","../../../node_modules/is-hotkey/lib/index.js","../../../node_modules/is-in-browser/dist/module.js","../../../node_modules/slate-dev-environment/lib/slate-dev-environment.es.js","../../../node_modules/slate-hotkeys/lib/slate-hotkeys.es.js","../../../node_modules/@convertkit/slate-lists/dist/index.esm.js","../src/components/hooks/useTypography.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.tsx","../src/components/builtin/Text/components/RichTextEditor/components/Block/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Link.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.tsx","../src/components/builtin/Text/components/RichTextEditor/index.tsx","../src/components/builtin/Text/Text.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","var createDefinition = function (propNames) { return ({\n isEnabled: function (props) { return propNames.some(function (name) { return !!props[name]; }); },\n}); };\nvar featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\"]),\n animation: createDefinition([\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n ]),\n exit: createDefinition([\"exit\"]),\n drag: createDefinition([\"drag\", \"dragControls\"]),\n focus: createDefinition([\"whileFocus\"]),\n hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n pan: createDefinition([\n \"onPan\",\n \"onPanStart\",\n \"onPanSessionStart\",\n \"onPanEnd\",\n ]),\n inView: createDefinition([\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n ]),\n};\nfunction loadFeatures(features) {\n for (var key in features) {\n if (features[key] === null)\n continue;\n if (key === \"projectionNodeConstructor\") {\n featureDefinitions.projectionNodeConstructor = features[key];\n }\n else {\n featureDefinitions[key].Component = features[key];\n }\n }\n}\n\nexport { featureDefinitions, loadFeatures };\n","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\n","import { createContext } from 'react';\n\nvar LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { featureDefinitions } from './definitions.mjs';\nimport { invariant } from 'hey-listen';\nimport { LazyContext } from '../../context/LazyContext.mjs';\n\nvar featureNames = Object.keys(featureDefinitions);\nvar numFeatures = featureNames.length;\n/**\n * Load features via renderless components based on the provided MotionProps.\n */\nfunction useFeatures(props, visualElement, preloadedFeatures) {\n var features = [];\n var lazyContext = useContext(LazyContext);\n if (!visualElement)\n return null;\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 lazyContext.strict) {\n invariant(false, \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\");\n }\n for (var i = 0; i < numFeatures; i++) {\n var name_1 = featureNames[i];\n var _a = featureDefinitions[name_1], isEnabled = _a.isEnabled, Component = _a.Component;\n /**\n * It might be possible in the future to use this moment to\n * dynamically request functionality. In initial tests this\n * was producing a lot of duplication amongst bundles.\n */\n if (isEnabled(props) && Component) {\n features.push(React.createElement(Component, __assign({ key: name_1 }, props, { visualElement: visualElement })));\n }\n }\n return features;\n}\n\nexport { useFeatures };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n transformPagePoint: function (p) { return p; },\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext, useContext } from 'react';\n\nvar MotionContext = createContext({});\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","var isBrowser = typeof window !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { __read } from 'tslib';\nimport { useState, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\n\n// Does this device prefer reduced motion? Returns `null` server-side.\nvar prefersReducedMotion = { current: null };\nvar hasDetected = false;\nfunction initPrefersReducedMotion() {\n hasDetected = true;\n if (typeof window === \"undefined\")\n return;\n if (window.matchMedia) {\n var motionMediaQuery_1 = window.matchMedia(\"(prefers-reduced-motion)\");\n var setReducedMotionPreferences = function () {\n return (prefersReducedMotion.current = motionMediaQuery_1.matches);\n };\n motionMediaQuery_1.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n * <motion.div animate={{\n * opacity: isOpen ? 1 : 0,\n * x: isOpen ? 0 : closedX\n * }} />\n * )\n * }\n * ```\n *\n * @return boolean\n *\n * @public\n */\nfunction useReducedMotion() {\n /**\n * Lazy initialisation of prefersReducedMotion\n */\n !hasDetected && initPrefersReducedMotion();\n var _a = __read(useState(prefersReducedMotion.current), 1), shouldReduceMotion = _a[0];\n /**\n * TODO See if people miss automatically updating shouldReduceMotion setting\n */\n return shouldReduceMotion;\n}\nfunction useReducedMotionConfig() {\n var reducedMotionPreference = useReducedMotion();\n var reducedMotion = useContext(MotionConfigContext).reducedMotion;\n if (reducedMotion === \"never\") {\n return false;\n }\n else if (reducedMotion === \"always\") {\n return true;\n }\n else {\n return reducedMotionPreference;\n }\n}\n\nexport { useReducedMotion, useReducedMotionConfig };\n","import { useContext, useRef, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useVisualElementContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { useReducedMotionConfig } from '../../utils/use-reduced-motion.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n var lazyContext = useContext(LazyContext);\n var parent = useVisualElementContext();\n var presenceContext = useContext(PresenceContext);\n var shouldReduceMotion = useReducedMotionConfig();\n var visualElementRef = useRef(undefined);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n if (!createVisualElement)\n createVisualElement = lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState: visualState,\n parent: parent,\n props: props,\n presenceId: presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id,\n blockInitialAnimation: (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false,\n shouldReduceMotion: shouldReduceMotion,\n });\n }\n var visualElement = visualElementRef.current;\n useIsomorphicLayoutEffect(function () {\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();\n });\n useEffect(function () {\n var _a;\n (_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.animationState) === null || _a === void 0 ? void 0 : _a.animateChanges();\n });\n useIsomorphicLayoutEffect(function () { return function () { return visualElement === null || visualElement === void 0 ? void 0 : visualElement.notifyUnmount(); }; }, []);\n return visualElement;\n}\n\nexport { useVisualElement };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\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(function (instance) {\n var _a;\n instance && ((_a = visualState.mount) === null || _a === void 0 ? void 0 : _a.call(visualState, 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","/**\n * Decides if the supplied variable is an array of variant labels\n */\nfunction isVariantLabels(v) {\n return Array.isArray(v);\n}\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || isVariantLabels(v);\n}\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n var current = {};\n visualElement.forEachValue(function (value, key) { return (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 var velocity = {};\n visualElement.forEachValue(function (value, key) { return (velocity[key] = value.getVelocity()); });\n return velocity;\n}\nfunction resolveVariantFromProps(props, definition, custom, currentValues, currentVelocity) {\n var _a;\n if (currentValues === void 0) { currentValues = {}; }\n if (currentVelocity === void 0) { currentVelocity = {}; }\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== null && custom !== void 0 ? 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 = (_a = props.variants) === null || _a === void 0 ? void 0 : _a[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 !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n var props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== null && custom !== void 0 ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\nfunction checkIfControllingVariants(props) {\n var _a;\n return (typeof ((_a = props.animate) === null || _a === void 0 ? void 0 : _a.start) === \"function\" ||\n isVariantLabel(props.initial) ||\n isVariantLabel(props.animate) ||\n isVariantLabel(props.whileHover) ||\n isVariantLabel(props.whileDrag) ||\n isVariantLabel(props.whileTap) ||\n isVariantLabel(props.whileFocus) ||\n isVariantLabel(props.exit));\n}\nfunction checkIfVariantNode(props) {\n return Boolean(checkIfControllingVariants(props) || props.variants);\n}\n\nexport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel, isVariantLabels, resolveVariant, resolveVariantFromProps };\n","import { checkIfControllingVariants, isVariantLabel } from '../../render/utils/variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (checkIfControllingVariants(props)) {\n var initial = props.initial, animate = props.animate;\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","import { useMemo, useContext } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n var _a = getCurrentTreeVariants(props, useContext(MotionContext)), initial = _a.initial, animate = _a.animate;\n return useMemo(function () { return ({ initial: initial, animate: animate }); }, [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\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 var ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","const defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n","function createRenderStep(runNextFrame) {\n let toRun = [];\n let toRunNextFrame = [];\n let numToRun = 0;\n let isProcessing = false;\n let flushNextFrame = false;\n const toKeepAlive = new WeakSet();\n const step = {\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: (frameData) => {\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[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 { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst frame = {\n delta: 0,\n timestamp: 0,\n};\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frame);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frame);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frame.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\nconst getFrameData = () => frame;\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.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 <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n if (dampingRatio < 1) {\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 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 = duration * 1000;\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 { __rest } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.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 = Object.assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = Object.assign(Object.assign(Object.assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring(_a) {\n var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n const state = { done: false, value: from };\n let { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n let resolveSpring = zero;\n let resolveVelocity = zero;\n function createSpring() {\n const initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n const initialDelta = to - from;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n if (restDelta === undefined) {\n restDelta = Math.min(Math.abs(to - from) / 100, 0.4);\n }\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (to -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n resolveVelocity = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (dampingRatio *\n undampedAngularFreq *\n envelope *\n ((Math.sin(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta)) /\n angularFreq +\n initialDelta * Math.cos(angularFreq * t)) -\n envelope *\n (Math.cos(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta) -\n angularFreq *\n initialDelta *\n Math.sin(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n resolveSpring = (t) => to -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) *\n t);\n }\n else {\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (to -\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 }\n createSpring();\n return {\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n const currentVelocity = resolveVelocity(t) * 1000;\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? to : current;\n return state;\n },\n flipTarget: () => {\n velocity = -velocity;\n [from, to] = [to, from];\n createSpring();\n },\n };\n}\nspring.needsInterpolation = (a, b) => typeof a === \"string\" || typeof b === \"string\";\nconst zero = (_t) => 0;\n\nexport { spring };\n","const progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","const mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","const clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);\nconst sanitize = (v) => (v % 1 ? Number(v.toFixed(5)) : v);\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nexport { clamp, colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { clamp } from '../utils.mjs';\n\nconst number = {\n test: (v) => typeof v === 'number',\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });\nconst scale = Object.assign(Object.assign({}, number), { default: 1 });\n\nexport { alpha, number, scale };\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 = Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\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 { 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 { number, alpha } from '../numbers/index.mjs';\nimport { sanitize, clamp } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = clamp(0, 255);\nconst rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });\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 (v.length > 5) {\n r = v.substr(1, 2);\n g = v.substr(3, 2);\n b = v.substr(5, 2);\n a = v.substr(7, 2);\n }\n else {\n r = v.substr(1, 1);\n g = v.substr(2, 1);\n b = v.substr(3, 1);\n a = v.substr(4, 1);\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 { 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","import { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nconst colorToken = '${c}';\nconst numberToken = '${n}';\nfunction test(v) {\n var _a, _b, _c, _d;\n return (isNaN(v) &&\n isString(v) &&\n ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0);\n}\nfunction analyse(v) {\n if (typeof v === 'number')\n v = `${v}`;\n const values = [];\n let numColors = 0;\n const colors = v.match(colorRegex);\n if (colors) {\n numColors = colors.length;\n v = v.replace(colorRegex, colorToken);\n values.push(...colors.map(color.parse));\n }\n const numbers = v.match(floatRegex);\n if (numbers) {\n v = v.replace(floatRegex, numberToken);\n values.push(...numbers.map(number.parse));\n }\n return { values, numColors, tokenised: v };\n}\nfunction parse(v) {\n return analyse(v).values;\n}\nfunction createTransformer(v) {\n const { values, numColors, tokenised } = analyse(v);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === 'number' ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parse(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = { test, parse, createTransformer, getAnimatableNone };\n\nexport { complex };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\nconst maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);\nfunction applyDefaultFilter(v) {\n let [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 = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(' ') : v;\n } });\n\nexport { filter };\n","function 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 { hsla, rgba, hex } from 'style-value-types';\nimport { invariant } from 'hey-listen';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\n\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nconst notAnimatable = (color) => `'${color}' is not an animatable color. Use the equivalent color code instead.`;\nconst mixColor = (from, to) => {\n let fromColorType = getColorType(from);\n let toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n let fromColor = fromColorType.parse(from);\n let toColor = toColorType.parse(to);\n if (fromColorType === hsla) {\n fromColor = hslaToRgba(fromColor);\n fromColorType = rgba;\n }\n if (toColorType === hsla) {\n toColor = hslaToRgba(toColor);\n toColorType = rgba;\n }\n const blended = Object.assign({}, fromColor);\n return (v) => {\n for (const key in blended) {\n if (key !== \"alpha\") {\n blended[key] = mixLinearColor(fromColor[key], toColor[key], v);\n }\n }\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","const zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nconst isNum = (v) => typeof v === 'number';\n\nexport { isNum, zeroPoint };\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","import { complex, color } from 'style-value-types';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { isNum } from './inc.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return 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 = Object.assign(Object.assign({}, 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};\nfunction analyse(value) {\n const parsed = complex.parse(value);\n const numValues = parsed.length;\n let numNumbers = 0;\n let numRGB = 0;\n let numHSL = 0;\n for (let i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === \"number\") {\n numNumbers++;\n }\n else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n }\n else {\n numRGB++;\n }\n }\n }\n return { parsed, numNumbers, numRGB, numHSL };\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyse(origin);\n const targetStats = analyse(target);\n const canInterpolate = originStats.numHSL === targetStats.numHSL &&\n originStats.numRGB === targetStats.numRGB &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.parsed, targetStats.parsed), 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 (p) => `${p > 0 ? target : origin}`;\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","import { progress } from './progress.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { invariant } from 'hey-listen';\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 if (color.test(v)) {\n return mixColor;\n }\n else {\n return mixComplex;\n }\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === 'object') {\n return mixObject;\n }\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] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\nfunction fastInterpolate([from, to], [mixer]) {\n return (v) => mixer(progress(from, to, v));\n}\nfunction slowInterpolate(input, mixers) {\n const inputLength = input.length;\n const lastInputIndex = inputLength - 1;\n return (v) => {\n let mixerIndex = 0;\n let foundMixerIndex = false;\n if (v <= input[0]) {\n foundMixerIndex = true;\n }\n else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n if (!foundMixerIndex) {\n let i = 1;\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n mixerIndex = i - 1;\n }\n const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\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 invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const interpolator = inputLength === 2\n ? fastInterpolate(input, mixers)\n : slowInterpolate(input, mixers);\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","const reverseEasing = easing => p => 1 - easing(1 - p);\nconst mirrorEasing = easing => p => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\nconst createExpoIn = (power) => p => Math.pow(p, power);\nconst createBackIn = (power) => p => p * p * ((power + 1) * p - power);\nconst createAnticipate = (power) => {\n const backEasing = createBackIn(power);\n return p => (p *= 2) < 1\n ? 0.5 * backEasing(p)\n : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };\n","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.mjs';\n\nconst DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nconst BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nconst BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nconst BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nconst linear = p => p;\nconst easeIn = createExpoIn(2);\nconst easeOut = reverseEasing(easeIn);\nconst easeInOut = mirrorEasing(easeIn);\nconst circIn = p => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\nconst backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nconst backOut = reverseEasing(backIn);\nconst backInOut = mirrorEasing(backIn);\nconst anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nconst ca = 4356.0 / 361.0;\nconst cb = 35442.0 / 1805.0;\nconst cc = 16061.0 / 1805.0;\nconst bounceOut = (p) => {\n if (p === 1 || p === 0)\n return p;\n const p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD\n ? 7.5625 * p2\n : p < BOUNCE_SECOND_THRESHOLD\n ? 9.075 * p2 - 9.9 * p + 3.4\n : p < BOUNCE_THIRD_THRESHOLD\n ? ca * p2 - cb * p + cc\n : 10.8 * p * p - 20.52 * p + 10.72;\n};\nconst bounceIn = reverseEasing(bounceOut);\nconst bounceInOut = (p) => p < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))\n : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };\n","import { interpolate } from '../../utils/interpolate.mjs';\nimport { easeInOut } from '../../easing/index.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n const numValues = values.length;\n return values.map((_value, i) => i !== 0 ? i / (numValues - 1) : 0);\n}\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\nfunction keyframes({ from = 0, to = 1, ease, offset, duration = 300, }) {\n const state = { done: false, value: from };\n const values = Array.isArray(to) ? to : [from, to];\n const times = convertOffsetToTimes(offset && offset.length === values.length\n ? offset\n : defaultOffset(values), duration);\n function createInterpolator() {\n return interpolate(times, values, {\n ease: Array.isArray(ease) ? ease : defaultEasing(values, ease),\n });\n }\n let interpolator = createInterpolator();\n return {\n next: (t) => {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: () => {\n values.reverse();\n interpolator = createInterpolator();\n },\n };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };\n","function decay({ velocity = 0, from = 0, power = 0.8, timeConstant = 350, restDelta = 0.5, modifyTarget, }) {\n const state = { done: false, value: from };\n let amplitude = power * velocity;\n const ideal = from + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n if (target !== ideal)\n amplitude = target - from;\n return {\n next: (t) => {\n const delta = -amplitude * Math.exp(-t / timeConstant);\n state.done = !(delta > restDelta || delta < -restDelta);\n state.value = state.done ? target : target + delta;\n return state;\n },\n flipTarget: () => { },\n };\n}\n\nexport { decay };\n","import { spring } from '../generators/spring.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { decay } from '../generators/decay.mjs';\n\nconst types = { keyframes, spring, decay };\nfunction detectAnimationFromOptions(config) {\n if (Array.isArray(config.to)) {\n return keyframes;\n }\n else if (types[config.type]) {\n return types[config.type];\n }\n const keys = new Set(Object.keys(config));\n if (keys.has(\"ease\") ||\n (keys.has(\"duration\") && !keys.has(\"dampingRatio\"))) {\n return keyframes;\n }\n else if (keys.has(\"dampingRatio\") ||\n keys.has(\"stiffness\") ||\n keys.has(\"mass\") ||\n keys.has(\"damping\") ||\n keys.has(\"restSpeed\") ||\n keys.has(\"restDelta\")) {\n return spring;\n }\n return keyframes;\n}\n\nexport { detectAnimationFromOptions };\n","function loopElapsed(elapsed, duration, delay = 0) {\n return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration, delay = 0, isForwardPlayback = true) {\n return isForwardPlayback\n ? loopElapsed(duration + -elapsed, duration, delay)\n : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nexport { hasRepeatDelayElapsed, loopElapsed, reverseElapsed };\n","import { __rest } from 'tslib';\nimport { detectAnimationFromOptions } from './utils/detect-animation-from-options.mjs';\nimport sync, { cancelSync } from 'framesync';\nimport { interpolate } from '../utils/interpolate.mjs';\nimport { hasRepeatDelayElapsed, reverseElapsed, loopElapsed } from './utils/elapsed.mjs';\n\nconst framesync = (update) => {\n const passTimestamp = ({ delta }) => update(delta);\n return {\n start: () => sync.update(passTimestamp, true),\n stop: () => cancelSync.update(passTimestamp),\n };\n};\nfunction animate(_a) {\n var _b, _c;\n var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = \"loop\", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n let { to } = options;\n let driverControls;\n let repeatCount = 0;\n let computedDuration = options.duration;\n let latest;\n let isComplete = false;\n let isForwardPlayback = true;\n let interpolateFromNumber;\n const animator = detectAnimationFromOptions(options);\n if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {\n interpolateFromNumber = interpolate([0, 100], [from, to], {\n clamp: false,\n });\n from = 0;\n to = 100;\n }\n const animation = animator(Object.assign(Object.assign({}, options), { from, to }));\n function repeat() {\n repeatCount++;\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n }\n else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\")\n animation.flipTarget();\n }\n isComplete = false;\n onRepeat && onRepeat();\n }\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n function update(delta) {\n if (!isForwardPlayback)\n delta = -delta;\n elapsed += delta;\n if (!isComplete) {\n const state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber)\n latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n if (isComplete) {\n if (repeatCount === 0)\n computedDuration !== null && computedDuration !== void 0 ? computedDuration : (computedDuration = elapsed);\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n }\n else {\n complete();\n }\n }\n }\n function play() {\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n autoplay && play();\n return {\n stop: () => {\n onStop === null || onStop === void 0 ? void 0 : onStop();\n driverControls.stop();\n },\n };\n}\n\nexport { animate };\n","function velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { animate } from './index.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { getFrameData } from 'framesync';\n\nfunction inertia({ from = 0, velocity = 0, min, max, power = 0.8, timeConstant = 750, bounceStiffness = 500, bounceDamping = 10, restDelta = 1, modifyTarget, driver, onUpdate, onComplete, onStop, }) {\n let currentAnimation;\n function isOutOfBounds(v) {\n return (min !== undefined && v < min) || (max !== undefined && v > max);\n }\n function boundaryNearest(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 function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate(Object.assign(Object.assign({}, options), { driver, onUpdate: (v) => {\n var _a;\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n }, onComplete,\n onStop }));\n }\n function startSpring(options) {\n startAnimation(Object.assign({ type: \"spring\", stiffness: bounceStiffness, damping: bounceDamping, restDelta }, options));\n }\n if (isOutOfBounds(from)) {\n startSpring({ from, velocity, to: boundaryNearest(from) });\n }\n else {\n let target = power * velocity + from;\n if (typeof modifyTarget !== \"undefined\")\n target = modifyTarget(target);\n const boundary = boundaryNearest(target);\n const heading = boundary === min ? -1 : 1;\n let prev;\n let current;\n const checkBoundary = (v) => {\n prev = current;\n current = v;\n velocity = velocityPerSecond(v - prev, getFrameData().delta);\n if ((heading === 1 && v > boundary) ||\n (heading === -1 && v < boundary)) {\n startSpring({ from: v, to: boundary, velocity });\n }\n };\n startAnimation({\n type: \"decay\",\n from,\n velocity,\n timeConstant,\n power,\n restDelta,\n modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,\n });\n }\n return {\n stop: () => currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(),\n };\n}\n\nexport { inertia };\n","const isPoint = (point) => point.hasOwnProperty('x') && point.hasOwnProperty('y');\n\nexport { isPoint };\n","import { isPoint } from './is-point.mjs';\n\nconst isPoint3D = (point) => isPoint(point) && point.hasOwnProperty('z');\n\nexport { isPoint3D };\n","import { isPoint } from './is-point.mjs';\nimport { isPoint3D } from './is-point-3d.mjs';\nimport { isNum } from './inc.mjs';\n\nconst distance1D = (a, b) => Math.abs(a - b);\nfunction distance(a, b) {\n if (isNum(a) && isNum(b)) {\n return distance1D(a, b);\n }\n else if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x);\n const yDelta = distance1D(a.y, b.y);\n const zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\n }\n}\n\nexport { distance };\n","import { linear } from './index.mjs';\n\nconst a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;\nconst b = (a1, a2) => 3.0 * a2 - 6.0 * a1;\nconst c = (a1) => 3.0 * a1;\nconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\nconst getSlope = (t, a1, a2) => 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n }\n else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nconst newtonIterations = 8;\nconst newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (let i = 0; i < newtonIterations; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n if (mX1 === mY1 && mX2 === mY2)\n return linear;\n const sampleValues = new Float32Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n const dist = (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= newtonMinSlope) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n else if (initialSlope === 0.0) {\n return guessForT;\n }\n else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { __read } from 'tslib';\n\nfunction addUniqueItem(arr, item) {\n arr.indexOf(item) === -1 && arr.push(item);\n}\nfunction removeItem(arr, item) {\n var index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem(_a, fromIndex, toIndex) {\n var _b = __read(_a), arr = _b.slice(0);\n var startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n var endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n var _c = __read(arr.splice(fromIndex, 1), 1), item = _c[0];\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nvar SubscriptionManager = /** @class */ (function () {\n function SubscriptionManager() {\n this.subscriptions = [];\n }\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n addUniqueItem(this.subscriptions, handler);\n return function () { return removeItem(_this.subscriptions, handler); };\n };\n SubscriptionManager.prototype.notify = function (a, b, c) {\n var 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 (var 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 var handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n };\n SubscriptionManager.prototype.getSize = function () {\n return this.subscriptions.length;\n };\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.length = 0;\n };\n return SubscriptionManager;\n}());\n\nexport { SubscriptionManager };\n","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\n\nvar isFloat = function (value) {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nvar MotionValue = /** @class */ (function () {\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 function MotionValue(init) {\n var _this = this;\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 * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the velocity updates.\n *\n * @internal\n */\n this.velocityUpdateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n *\n * @internal\n */\n this.renderSubscribers = new SubscriptionManager();\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 this.updateAndNotify = function (v, render) {\n if (render === void 0) { render = true; }\n _this.prev = _this.current;\n _this.current = v;\n // Update timestamp\n var _a = getFrameData(), delta = _a.delta, timestamp = _a.timestamp;\n if (_this.lastUpdated !== timestamp) {\n _this.timeDelta = delta;\n _this.lastUpdated = timestamp;\n sync.postRender(_this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (_this.prev !== _this.current) {\n _this.updateSubscribers.notify(_this.current);\n }\n // Update velocity subscribers\n if (_this.velocityUpdateSubscribers.getSize()) {\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n // Update render subscribers\n if (render) {\n _this.renderSubscribers.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 = function () { return sync.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 = function (_a) {\n var timestamp = _a.timestamp;\n if (timestamp !== _this.lastUpdated) {\n _this.prev = _this.current;\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\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.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return <motion.div style={{ x }} />\n * }\n * ```\n *\n * @internalremarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\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 * @public\n */\n MotionValue.prototype.onChange = function (subscription) {\n return this.updateSubscribers.add(subscription);\n };\n MotionValue.prototype.clearListeners = function () {\n this.updateSubscribers.clear();\n };\n /**\n * Adds a function that will be notified when the `MotionValue` requests a render.\n *\n * @param subscriber - A function that's provided the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @internal\n */\n MotionValue.prototype.onRenderRequest = function (subscription) {\n // Render immediately\n subscription(this.get());\n return this.renderSubscribers.add(subscription);\n };\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n MotionValue.prototype.attach = function (passiveEffect) {\n this.passiveEffect = passiveEffect;\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 MotionValue.prototype.set = function (v, render) {\n if (render === void 0) { render = true; }\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n };\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n MotionValue.prototype.get = function () {\n return this.current;\n };\n /**\n * @public\n */\n MotionValue.prototype.getPrevious = function () {\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 MotionValue.prototype.getVelocity = function () {\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 MotionValue.prototype.start = function (animation) {\n var _this = this;\n this.stop();\n return new Promise(function (resolve) {\n _this.hasAnimated = true;\n _this.stopAnimation = animation(resolve);\n }).then(function () { return _this.clearAnimation(); });\n };\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n MotionValue.prototype.stop = function () {\n if (this.stopAnimation)\n this.stopAnimation();\n this.clearAnimation();\n };\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n MotionValue.prototype.isAnimating = function () {\n return !!this.stopAnimation;\n };\n MotionValue.prototype.clearAnimation = function () {\n this.stopAnimation = null;\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 MotionValue.prototype.destroy = function () {\n this.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n };\n return MotionValue;\n}());\n/**\n * @internal\n */\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };\n","var isMotionValue = function (value) {\n return Boolean(value !== null && typeof value === \"object\" && value.getVelocity);\n};\n\nexport { isMotionValue };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nexport { secondsToMilliseconds };\n","import { __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\n\nvar easingLookup = {\n linear: linear,\n easeIn: easeIn,\n easeInOut: easeInOut,\n easeOut: easeOut,\n circIn: circIn,\n circInOut: circInOut,\n circOut: circOut,\n backIn: backIn,\n backInOut: backInOut,\n backOut: backOut,\n anticipate: anticipate,\n bounceIn: bounceIn,\n bounceInOut: bounceInOut,\n bounceOut: bounceOut,\n};\nvar easingDefinitionToFunction = function (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 var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];\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 '\".concat(definition, \"'\"));\n return easingLookup[definition];\n }\n return definition;\n};\nvar isEasingArray = function (ease) {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\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 */\nvar isAnimatable = function (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) && // 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","var isKeyframesTarget = function (v) {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { __assign } from 'tslib';\nimport { isKeyframesTarget } from './is-keyframes-target.mjs';\n\nvar underDampedSpring = function () { return ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n}); };\nvar criticallyDampedSpring = function (to) { return ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n}); };\nvar linearTween = function () { return ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n}); };\nvar keyframes = function (values) { return ({\n type: \"keyframes\",\n duration: 0.8,\n values: values,\n}); };\nvar defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring,\n};\nvar getDefaultTransition = function (valueKey, to) {\n var transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return __assign({ to: to }, transitionFactory(to));\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","import { __assign } from 'tslib';\nimport { number } from 'style-value-types';\n\nvar int = __assign(__assign({}, number), { transform: Math.round });\n\nexport { int };\n","import { px, degrees, scale, alpha, progressPercentage } from 'style-value-types';\nimport { int } from './type-int.mjs';\n\nvar 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: 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 { __assign } from 'tslib';\nimport { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = __assign(__assign({}, numberValueTypes), { \n // Color props\n color: color, backgroundColor: color, outlineColor: color, fill: color, stroke: color, \n // Border props\n borderColor: color, borderTopColor: color, borderRightColor: color, borderBottomColor: color, borderLeftColor: color, filter: filter, WebkitFilter: filter });\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n var 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 (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","var instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nvar isCustomValue = function (v) {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = function (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 { __assign, __rest, __spreadArray, __read } from 'tslib';\nimport { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { getDefaultTransition } from './default-transitions.mjs';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\n\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(_a) {\n _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n return !!Object.keys(transition).length;\n}\nvar legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, [\"ease\", \"times\", \"yoyo\", \"flip\", \"loop\"]);\n var options = __assign({}, transition);\n if (times)\n options[\"offset\"] = times;\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n /**\n * TODO: These options are officially removed from the API.\n */\n if (yoyo || loop || flip) {\n warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n legacyRepeatWarning = true;\n if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\n }\n options.repeat = loop || yoyo || flip || transition.repeat;\n }\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b;\n var valueTransition = getValueTransition(transition, key) || {};\n return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spreadArray([], __read(options.to), false);\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n var _a;\n if (Array.isArray(options.to)) {\n (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n }\n return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n var _a;\n var valueTransition = getValueTransition(transition, key);\n var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n var isTargetAnimatable = isAnimatable(key, target);\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n origin = getAnimatableNone(key, target);\n }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \".concat(key, \" from \\\"\").concat(origin, \"\\\" to \\\"\").concat(target, \"\\\". \").concat(origin, \" is not an animatable value - to enable this animation set \").concat(origin, \" to a value animatable to \").concat(target, \" via the `style` property.\"));\n function start() {\n var options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete: onComplete,\n onUpdate: function (v) { return value.set(v); },\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia(__assign(__assign({}, options), valueTransition))\n : animate(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {\n var _a;\n options.onUpdate(v);\n (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n }, onComplete: function () {\n var _a;\n options.onComplete();\n (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n } }));\n }\n function set() {\n var _a, _b;\n var finalTarget = resolveFinalValueInKeyframes(target);\n value.set(finalTarget);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, finalTarget);\n (_b = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _b === void 0 ? void 0 : _b.call(valueTransition);\n return { stop: function () { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n *\n * @internal\n */\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) { transition = {}; }\n if (instantAnimationState.current) {\n transition = { type: false };\n }\n return value.start(function (onComplete) {\n var delayTimer;\n var controls;\n var animation = getAnimation(key, value, target, transition, onComplete);\n var delay = getDelayFromTransition(transition, key);\n var start = function () { return (controls = animation()); };\n if (delay) {\n delayTimer = window.setTimeout(start, secondsToMilliseconds(delay));\n }\n else {\n start();\n }\n return function () {\n clearTimeout(delayTimer);\n controls === null || controls === void 0 ? void 0 : controls.stop();\n };\n });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\n","import { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { startAnimation } from './utils/transitions.mjs';\n\n/**\n * Animate a single value or a `MotionValue`.\n *\n * The first argument is either a `MotionValue` to animate, or an initial animation value.\n *\n * The second is either a value to animate to, or an array of keyframes to animate through.\n *\n * The third argument can be either tween or spring options, and optional lifecycle methods: `onUpdate`, `onPlay`, `onComplete`, `onRepeat` and `onStop`.\n *\n * Returns `AnimationPlaybackControls`, currently just a `stop` method.\n *\n * ```javascript\n * const x = useMotionValue(0)\n *\n * useEffect(() => {\n * const controls = animate(x, 100, {\n * type: \"spring\",\n * stiffness: 2000,\n * onComplete: v => {}\n * })\n *\n * return controls.stop\n * })\n * ```\n *\n * @public\n */\nfunction animate(from, to, transition) {\n if (transition === void 0) { transition = {}; }\n var value = isMotionValue(from) ? from : motionValue(from);\n startAnimation(\"\", value, to, transition);\n return {\n stop: function () { return value.stop(); },\n isAnimating: function () { return value.isAnimating(); },\n };\n}\n\nexport { animate };\n","import { mix, progress, linear, circOut } from 'popmotion';\nimport { px, percent } from 'style-value-types';\n\nvar borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nvar numBorders = borders.length;\nvar asNumber = function (value) {\n return typeof value === \"string\" ? parseFloat(value) : value;\n};\nvar isPx = function (value) {\n return typeof value === \"number\" || px.test(value);\n};\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n var _a, _b, _c, _d;\n if (shouldCrossfadeOpacity) {\n target.opacity = mix(0, \n // (follow?.opacity as number) ?? 0,\n // TODO Reinstate this if only child\n (_a = lead.opacity) !== null && _a !== void 0 ? _a : 1, easeCrossfadeIn(progress));\n target.opacityExit = mix((_b = follow.opacity) !== null && _b !== void 0 ? _b : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mix((_c = follow.opacity) !== null && _c !== void 0 ? _c : 1, (_d = lead.opacity) !== null && _d !== void 0 ? _d : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (var i = 0; i < numBorders; i++) {\n var borderLabel = \"border\".concat(borders[i], \"Radius\");\n var followRadius = getRadius(follow, borderLabel);\n var leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n var 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 var _a;\n return (_a = values[radiusName]) !== null && _a !== void 0 ? _a : 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// }\nvar easeCrossfadeIn = compress(0, 0.5, circOut);\nvar easeCrossfadeOut = compress(0.5, 0.95, linear);\nfunction compress(min, max, easing) {\n return function (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","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale(_a) {\n var scale = _a.scale, scaleX = _a.scaleX, scaleY = _a.scaleY;\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n hasTranslate(values.x) ||\n hasTranslate(values.y) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY);\n}\nfunction hasTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { hasScale, hasTransform };\n","import { __read } from 'tslib';\nimport { mix } from 'popmotion';\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 var distanceFromOrigin = point - originPoint;\n var 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, scale, originPoint, boxScale) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\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, _a) {\n var x = _a.x, y = _a.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) {\n var _a, _b;\n if (isSharedTransition === void 0) { isSharedTransition = false; }\n var treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n var node;\n var delta;\n for (var i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n if (((_b = (_a = node.instance) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.display) === \"contents\")\n continue;\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, { x: -node.scroll.x, y: -node.scroll.y });\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}\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, _a) {\n var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n var axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n var 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 */\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar 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 { mix, distance } from 'popmotion';\n\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n if (target === void 0) { target = 0; }\n if (maxDistance === void 0) { maxDistance = 0.01; }\n return distance(value, target) < maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin) {\n if (origin === void 0) { 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 === null || origin === void 0 ? void 0 : origin.originX);\n calcAxisDelta(delta.y, source.y, target.y, origin === null || origin === void 0 ? void 0 : origin.originY);\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 { __read } from 'tslib';\nimport { mix } from 'popmotion';\nimport { percent } from 'style-value-types';\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, scale, origin, boxScale, originAxis, sourceAxis) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\n if (origin === void 0) { origin = 0.5; }\n if (originAxis === void 0) { originAxis = axis; }\n if (sourceAxis === void 0) { sourceAxis = axis; }\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n var relativeProgress = mix(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n var 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, _a, origin, sourceAxis) {\n var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\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 */\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar 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 === null || originBox === void 0 ? void 0 : originBox.x, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.x);\n removeAxisTransforms(box.y, transforms, yKeys, originBox === null || originBox === void 0 ? void 0 : originBox.y, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.y);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","var createAxisDelta = function () { return ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n}); };\nvar createDelta = function () { return ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n}); };\nvar createAxis = function () { return ({ min: 0, max: 0 }); };\nvar createBox = function () { return ({\n x: createAxis(),\n y: createAxis(),\n}); };\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","function 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}\n\nexport { boxEquals, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nvar NodeStack = /** @class */ (function () {\n function NodeStack() {\n this.members = [];\n }\n NodeStack.prototype.add = function (node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n };\n NodeStack.prototype.remove = function (node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n var prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n };\n NodeStack.prototype.relegate = function (node) {\n var indexOfNode = this.members.findIndex(function (member) { return node === member; });\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n var prevLead;\n for (var i = indexOfNode; i >= 0; i--) {\n var 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 NodeStack.prototype.promote = function (node, preserveFollowOpacity) {\n var _a;\n var 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 node.snapshot.isShared = true;\n }\n if ((_a = node.root) === null || _a === void 0 ? void 0 : _a.isUpdating) {\n node.isLayoutDirty = true;\n }\n var crossfade = node.options.crossfade;\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 NodeStack.prototype.exitAnimationComplete = function () {\n this.members.forEach(function (node) {\n var _a, _b, _c, _d, _e;\n (_b = (_a = node.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_e = (_c = node.resumingFrom) === null || _c === void 0 ? void 0 : (_d = _c.options).onExitComplete) === null || _e === void 0 ? void 0 : _e.call(_d);\n });\n };\n NodeStack.prototype.scheduleRender = function () {\n this.members.forEach(function (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 NodeStack.prototype.removeLeadSnapshot = function () {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n };\n return NodeStack;\n}());\n\nexport { NodeStack };\n","var scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","var identityProjection = \"translate3d(0px, 0px, 0) scale(1, 1)\";\nfunction buildProjectionTransform(delta, treeScale, latestTransform) {\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 var xTranslate = delta.x.translate / treeScale.x;\n var yTranslate = delta.y.translate / treeScale.y;\n var transform = \"translate3d(\".concat(xTranslate, \"px, \").concat(yTranslate, \"px, 0) \");\n if (latestTransform) {\n var rotate = latestTransform.rotate, rotateX = latestTransform.rotateX, rotateY = latestTransform.rotateY;\n if (rotate)\n transform += \"rotate(\".concat(rotate, \"deg) \");\n if (rotateX)\n transform += \"rotateX(\".concat(rotateX, \"deg) \");\n if (rotateY)\n transform += \"rotateY(\".concat(rotateY, \"deg) \");\n }\n transform += \"scale(\".concat(delta.x.scale, \", \").concat(delta.y.scale, \")\");\n return transform === identityProjection ? \"none\" : transform;\n}\n\nexport { buildProjectionTransform, identityProjection };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nvar order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\n/**\n * Generate a list of every possible transform key.\n */\nvar transformProps = [\"transformPerspective\", \"x\", \"y\", \"z\"];\norder.forEach(function (operationKey) {\n return transformAxes.forEach(function (axesKey) {\n return transformProps.push(operationKey + axesKey);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nfunction sortTransformProps(a, b) {\n return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\n/**\n * A quick lookup for transform props.\n */\nvar transformPropSet = new Set(transformProps);\nfunction isTransformProp(key) {\n return transformPropSet.has(key);\n}\n/**\n * A quick lookup for transform origin props\n */\nvar transformOriginProps = new Set([\"originX\", \"originY\", \"originZ\"]);\nfunction isTransformOriginProp(key) {\n return transformOriginProps.has(key);\n}\n\nexport { isTransformOriginProp, isTransformProp, sortTransformProps, transformAxes, transformProps };\n","var compareByDepth = function (a, b) {\n return a.depth - b.depth;\n};\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nvar FlatTree = /** @class */ (function () {\n function FlatTree() {\n this.children = [];\n this.isDirty = false;\n }\n FlatTree.prototype.add = function (child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n };\n FlatTree.prototype.remove = function (child) {\n removeItem(this.children, child);\n this.isDirty = true;\n };\n FlatTree.prototype.forEach = function (callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n };\n return FlatTree;\n}());\n\nexport { FlatTree };\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 *\n * @internal\n */\nfunction resolveMotionValue(value) {\n var unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { __spreadArray, __read, __assign } from 'tslib';\nimport sync, { cancelSync, flushSync } from 'framesync';\nimport { mix } from 'popmotion';\nimport { animate } from '../../animation/animate.mjs';\nimport { 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 } 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 { boxEquals, isDeltaZero } 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 } from '../utils/has-transform.mjs';\nimport { transformAxes } from '../../render/html/utils/transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\n\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 */\nvar animationTarget = 1000;\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 */\nvar 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};\nfunction createProjectionNode(_a) {\n var attachResizeListener = _a.attachResizeListener, defaultParent = _a.defaultParent, measureScroll = _a.measureScroll, resetTransform = _a.resetTransform;\n return /** @class */ (function () {\n function ProjectionNode(id, latestValues, parent) {\n var _this = this;\n if (latestValues === void 0) { latestValues = {}; }\n if (parent === void 0) { parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent(); }\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 * 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 actually\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 // Note: Currently only running on root node\n this.potentialNodes = new Map();\n this.checkUpdateFailed = function () {\n if (_this.isUpdating) {\n _this.isUpdating = false;\n _this.clearAllSnapshots();\n }\n };\n this.updateProjection = function () {\n _this.nodes.forEach(resolveTargetDelta);\n _this.nodes.forEach(calcProjection);\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.id = id;\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? __spreadArray(__spreadArray([], __read(parent.path), false), [parent], false) : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n id && this.root.registerPotentialNode(id, this);\n for (var 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 ProjectionNode.prototype.addEventListener = function (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 ProjectionNode.prototype.notifyListeners = function (name) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager === null || subscriptionManager === void 0 ? void 0 : subscriptionManager.notify.apply(subscriptionManager, __spreadArray([], __read(args), false));\n };\n ProjectionNode.prototype.hasListeners = function (name) {\n return this.eventHandlers.has(name);\n };\n ProjectionNode.prototype.registerPotentialNode = function (id, node) {\n this.potentialNodes.set(id, node);\n };\n /**\n * Lifecycles\n */\n ProjectionNode.prototype.mount = function (instance, isLayoutDirty) {\n var _this = this;\n var _a;\n if (isLayoutDirty === void 0) { isLayoutDirty = false; }\n if (this.instance)\n return;\n this.isSVG =\n instance instanceof SVGElement && instance.tagName !== \"svg\";\n this.instance = instance;\n var _b = this.options, layoutId = _b.layoutId, layout = _b.layout, visualElement = _b.visualElement;\n if (visualElement && !visualElement.getInstance()) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children.add(this);\n this.id && this.root.potentialNodes.delete(this.id);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n var unblockTimeout_1;\n var resizeUnblockUpdate_1 = function () {\n return (_this.root.updateBlockedByResize = false);\n };\n attachResizeListener(instance, function () {\n _this.root.updateBlockedByResize = true;\n clearTimeout(unblockTimeout_1);\n unblockTimeout_1 = window.setTimeout(resizeUnblockUpdate_1, 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\", function (_a) {\n var _b, _c, _d, _e, _f;\n var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged, hasRelativeTargetChanged = _a.hasRelativeTargetChanged, newLayout = _a.layout;\n if (_this.isTreeAnimationBlocked()) {\n _this.target = undefined;\n _this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n var layoutTransition = (_c = (_b = _this.options.transition) !== null && _b !== void 0 ? _b : visualElement.getDefaultTransition()) !== null && _c !== void 0 ? _c : defaultLayoutTransition;\n var onLayoutAnimationComplete = visualElement.getProps().onLayoutAnimationComplete;\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n var targetChanged = !_this.targetLayout ||\n !boxEquals(_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 var hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (((_d = _this.resumeFrom) === null || _d === void 0 ? void 0 : _d.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 var animationOptions = __assign(__assign({}, getValueTransition(layoutTransition, \"layout\")), { onComplete: onLayoutAnimationComplete });\n if (visualElement.shouldReduceMotion) {\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 _this.animationProgress === 0) {\n _this.finishAnimation();\n }\n _this.isLead() && ((_f = (_e = _this.options).onExitComplete) === null || _f === void 0 ? void 0 : _f.call(_e));\n }\n _this.targetLayout = newLayout;\n });\n }\n };\n ProjectionNode.prototype.unmount = function () {\n var _a, _b;\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.remove(this);\n (_b = this.parent) === null || _b === void 0 ? void 0 : _b.children.delete(this);\n this.instance = undefined;\n cancelSync.preRender(this.updateProjection);\n };\n // only on the root\n ProjectionNode.prototype.blockUpdate = function () {\n this.updateManuallyBlocked = true;\n };\n ProjectionNode.prototype.unblockUpdate = function () {\n this.updateManuallyBlocked = false;\n };\n ProjectionNode.prototype.isUpdateBlocked = function () {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n };\n ProjectionNode.prototype.isTreeAnimationBlocked = function () {\n var _a;\n return (this.isAnimationBlocked ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimationBlocked()) ||\n false);\n };\n // Note: currently only running on root node\n ProjectionNode.prototype.startUpdate = function () {\n var _a;\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n (_a = this.nodes) === null || _a === void 0 ? void 0 : _a.forEach(resetRotation);\n };\n ProjectionNode.prototype.willUpdate = function (shouldNotifyListeners) {\n var _a, _b, _c;\n if (shouldNotifyListeners === void 0) { shouldNotifyListeners = true; }\n if (this.root.isUpdateBlocked()) {\n (_b = (_a = this.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);\n return;\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n node.shouldResetTransform = true;\n /**\n * TODO: Check we haven't updated the scroll\n * since the last didUpdate\n */\n node.updateScroll();\n }\n var _d = this.options, layoutId = _d.layoutId, layout = _d.layout;\n if (layoutId === undefined && !layout)\n return;\n var transformTemplate = (_c = this.options.visualElement) === null || _c === void 0 ? void 0 : _c.getProps().transformTemplate;\n this.prevTransformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, \"\");\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n };\n // Note: Currently only running on root node\n ProjectionNode.prototype.didUpdate = function () {\n var 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 return;\n this.isUpdating = false;\n /**\n * Search for and mount newly-added projection elements.\n *\n * TODO: Every time a new component is rendered we could search up the tree for\n * the closest mounted node and query from there rather than document.\n */\n if (this.potentialNodes.size) {\n this.potentialNodes.forEach(mountNodeEarly);\n this.potentialNodes.clear();\n }\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 // Flush any scheduled updates\n flushSync.update();\n flushSync.preRender();\n flushSync.render();\n };\n ProjectionNode.prototype.clearAllSnapshots = function () {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n };\n ProjectionNode.prototype.scheduleUpdateProjection = function () {\n sync.preRender(this.updateProjection, false, true);\n };\n ProjectionNode.prototype.scheduleCheckAfterUnmount = function () {\n var _this = this;\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 sync.postRender(function () {\n if (_this.isLayoutDirty) {\n _this.root.didUpdate();\n }\n else {\n _this.root.checkUpdateFailed();\n }\n });\n };\n /**\n * Update measurements\n */\n ProjectionNode.prototype.updateSnapshot = function () {\n if (this.snapshot || !this.instance)\n return;\n var measured = this.measure();\n var layout = this.removeTransform(this.removeElementScroll(measured));\n roundBox(layout);\n this.snapshot = {\n measured: measured,\n layout: layout,\n latestValues: {},\n };\n };\n ProjectionNode.prototype.updateLayout = function () {\n var _a;\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 (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n node.updateScroll();\n }\n }\n var measured = this.measure();\n roundBox(measured);\n var prevLayout = this.layout;\n this.layout = {\n measured: measured,\n actual: this.removeElementScroll(measured),\n };\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.actual);\n (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.notifyLayoutMeasure(this.layout.actual, prevLayout === null || prevLayout === void 0 ? void 0 : prevLayout.actual);\n };\n ProjectionNode.prototype.updateScroll = function () {\n if (this.options.layoutScroll && this.instance) {\n this.scroll = measureScroll(this.instance);\n }\n };\n ProjectionNode.prototype.resetTransform = function () {\n var _a;\n if (!resetTransform)\n return;\n var isResetRequested = this.isLayoutDirty || this.shouldResetTransform;\n var hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n var transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;\n var transformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, \"\");\n var 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 ProjectionNode.prototype.measure = function () {\n var visualElement = this.options.visualElement;\n if (!visualElement)\n return createBox();\n var box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n var scroll = this.root.scroll;\n if (scroll) {\n translateAxis(box.x, scroll.x);\n translateAxis(box.y, scroll.y);\n }\n return box;\n };\n ProjectionNode.prototype.removeElementScroll = function (box) {\n var 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 (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n var scroll_1 = node.scroll, options = node.options;\n if (node !== this.root && scroll_1 && options.layoutScroll) {\n translateAxis(boxWithoutScroll.x, scroll_1.x);\n translateAxis(boxWithoutScroll.y, scroll_1.y);\n }\n }\n return boxWithoutScroll;\n };\n ProjectionNode.prototype.applyTransform = function (box, transformOnly) {\n if (transformOnly === void 0) { transformOnly = false; }\n var withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (var i = 0; i < this.path.length; i++) {\n var 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.x,\n y: -node.scroll.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 ProjectionNode.prototype.removeTransform = function (box) {\n var _a;\n var boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n var sourceBox = createBox();\n var nodeBox = node.measure();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, (_a = node.snapshot) === null || _a === void 0 ? void 0 : _a.layout, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n };\n /**\n *\n */\n ProjectionNode.prototype.setTargetDelta = function (delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n };\n ProjectionNode.prototype.setOptions = function (options) {\n var _a;\n this.options = __assign(__assign(__assign({}, this.options), options), { crossfade: (_a = options.crossfade) !== null && _a !== void 0 ? _a : true });\n };\n ProjectionNode.prototype.clearMeasurements = function () {\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 /**\n * Frame calculations\n */\n ProjectionNode.prototype.resolveTargetDelta = function () {\n var _a;\n var _b = this.options, layout = _b.layout, layoutId = _b.layoutId;\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 /**\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 this.relativeParent = this.getClosestProjectingParent();\n if (this.relativeParent && this.relativeParent.layout) {\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.actual, this.relativeParent.layout.actual);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\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 ((_a = this.relativeParent) === null || _a === void 0 ? void 0 : _a.target)) {\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.actual);\n }\n else {\n copyBoxInto(this.target, this.layout.actual);\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.actual);\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 this.relativeParent = this.getClosestProjectingParent();\n if (this.relativeParent &&\n Boolean(this.relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !this.relativeParent.options.layoutScroll &&\n this.relativeParent.target) {\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, this.relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n }\n };\n ProjectionNode.prototype.getClosestProjectingParent = function () {\n if (!this.parent || hasTransform(this.parent.latestValues))\n return undefined;\n if ((this.parent.relativeTarget || this.parent.targetDelta) &&\n this.parent.layout) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n };\n ProjectionNode.prototype.calcProjection = function () {\n var _a;\n var _b = this.options, layout = _b.layout, layoutId = _b.layoutId;\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(((_a = this.parent) === null || _a === void 0 ? void 0 : _a.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 var lead = this.getLead();\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.actual);\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, Boolean(this.resumingFrom) || this !== lead);\n var target = lead.target;\n if (!target)\n return;\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n var prevTreeScaleX = this.treeScale.x;\n var prevTreeScaleY = this.treeScale.y;\n var 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 ProjectionNode.prototype.hide = function () {\n this.isVisible = false;\n // TODO: Schedule render\n };\n ProjectionNode.prototype.show = function () {\n this.isVisible = true;\n // TODO: Schedule render\n };\n ProjectionNode.prototype.scheduleRender = function (notifyAll) {\n var _a, _b, _c;\n if (notifyAll === void 0) { notifyAll = true; }\n (_b = (_a = this.options).scheduleRender) === null || _b === void 0 ? void 0 : _b.call(_a);\n notifyAll && ((_c = this.getStack()) === null || _c === void 0 ? void 0 : _c.scheduleRender());\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n };\n ProjectionNode.prototype.setAnimationOrigin = function (delta, hasOnlyRelativeTargetChanged) {\n var _this = this;\n var _a;\n if (hasOnlyRelativeTargetChanged === void 0) { hasOnlyRelativeTargetChanged = false; }\n var snapshot = this.snapshot;\n var snapshotLatestValues = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.latestValues) || {};\n var mixedValues = __assign({}, this.latestValues);\n var targetDelta = createDelta();\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n var relativeLayout = createBox();\n var isSharedLayoutAnimation = snapshot === null || snapshot === void 0 ? void 0 : snapshot.isShared;\n var isOnlyMember = (((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.members.length) || 0) <= 1;\n var shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n this.mixTargetDelta = function (latest) {\n var _a;\n var 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 ((_a = _this.relativeParent) === null || _a === void 0 ? void 0 : _a.layout)) {\n calcRelativePosition(relativeLayout, _this.layout.actual, _this.relativeParent.layout.actual);\n mixBox(_this.relativeTarget, _this.relativeTargetOrigin, relativeLayout, progress);\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(0);\n };\n ProjectionNode.prototype.startAnimation = function (options) {\n var _this = this;\n var _a, _b;\n (_a = this.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop();\n if (this.resumingFrom) {\n (_b = this.resumingFrom.currentAnimation) === null || _b === void 0 ? void 0 : _b.stop();\n }\n if (this.pendingAnimation) {\n cancelSync.update(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 = sync.update(function () {\n globalProjectionState.hasAnimatedSinceResize = true;\n _this.currentAnimation = animate(0, animationTarget, __assign(__assign({}, options), { onUpdate: function (latest) {\n var _a;\n _this.mixTargetDelta(latest);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, latest);\n }, onComplete: function () {\n var _a;\n (_a = options.onComplete) === null || _a === void 0 ? void 0 : _a.call(options);\n _this.completeAnimation();\n } }));\n if (_this.resumingFrom) {\n _this.resumingFrom.currentAnimation = _this.currentAnimation;\n }\n _this.pendingAnimation = undefined;\n });\n };\n ProjectionNode.prototype.completeAnimation = function () {\n var _a;\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n };\n ProjectionNode.prototype.finishAnimation = function () {\n var _a;\n if (this.currentAnimation) {\n (_a = this.mixTargetDelta) === null || _a === void 0 ? void 0 : _a.call(this, animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n };\n ProjectionNode.prototype.applyTransformsToTarget = function () {\n var _a = this.getLead(), targetWithTransforms = _a.targetWithTransforms, target = _a.target, layout = _a.layout, latestValues = _a.latestValues;\n if (!targetWithTransforms || !target || !layout)\n return;\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 actual layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n };\n ProjectionNode.prototype.registerSharedNode = function (layoutId, node) {\n var _a, _b, _c;\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n var stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n node.promote({\n transition: (_a = node.options.initialPromotionConfig) === null || _a === void 0 ? void 0 : _a.transition,\n preserveFollowOpacity: (_c = (_b = node.options.initialPromotionConfig) === null || _b === void 0 ? void 0 : _b.shouldPreserveFollowOpacity) === null || _c === void 0 ? void 0 : _c.call(_b, node),\n });\n };\n ProjectionNode.prototype.isLead = function () {\n var stack = this.getStack();\n return stack ? stack.lead === this : true;\n };\n ProjectionNode.prototype.getLead = function () {\n var _a;\n var layoutId = this.options.layoutId;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n };\n ProjectionNode.prototype.getPrevLead = function () {\n var _a;\n var layoutId = this.options.layoutId;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n };\n ProjectionNode.prototype.getStack = function () {\n var layoutId = this.options.layoutId;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n };\n ProjectionNode.prototype.promote = function (_a) {\n var _b = _a === void 0 ? {} : _a, needsReset = _b.needsReset, transition = _b.transition, preserveFollowOpacity = _b.preserveFollowOpacity;\n var 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: transition });\n };\n ProjectionNode.prototype.relegate = function () {\n var stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n };\n ProjectionNode.prototype.resetRotation = function () {\n var visualElement = this.options.visualElement;\n if (!visualElement)\n return;\n // If there's no detected rotation values, we can early return without a forced render.\n var hasRotate = false;\n // Keep a record of all the values we've reset\n var resetValues = {};\n // Check the rotate value of all axes and reset to 0\n for (var i = 0; i < transformAxes.length; i++) {\n var axis = transformAxes[i];\n var key = \"rotate\" + axis;\n // If this rotation doesn't exist as a motion value, then we don't\n // need to reset it\n if (!visualElement.getStaticValue(key)) {\n continue;\n }\n hasRotate = true;\n // Record the rotation and then temporarily set it to 0\n resetValues[key] = visualElement.getStaticValue(key);\n visualElement.setStaticValue(key, 0);\n }\n // If there's no rotation values, we don't need to do any more.\n if (!hasRotate)\n return;\n // Force a render of this element to apply the transform with all rotations\n // set to 0.\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();\n // Put back all the values we reset\n for (var 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 ProjectionNode.prototype.getProjectionStyles = function (styleProp) {\n var _a, _b, _c, _d, _e, _f;\n if (styleProp === void 0) { styleProp = {}; }\n // TODO: Return lifecycle-persistent object\n var 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 var transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;\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 var lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n var emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity = (_b = this.latestValues.opacity) !== null && _b !== void 0 ? _b : 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 var 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 var _g = this.projectionDelta, x = _g.x, y = _g.y;\n styles.transformOrigin = \"\".concat(x.origin * 100, \"% \").concat(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 ? (_d = (_c = valuesToRender.opacity) !== null && _c !== void 0 ? _c : this.latestValues.opacity) !== null && _d !== void 0 ? _d : 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 actual\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? (_e = valuesToRender.opacity) !== null && _e !== void 0 ? _e : \"\"\n : (_f = valuesToRender.opacityExit) !== null && _f !== void 0 ? _f : 0;\n }\n /**\n * Apply scale correction\n */\n for (var key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n var _h = scaleCorrectors[key], correct = _h.correct, applyTo = _h.applyTo;\n var corrected = correct(valuesToRender[key], lead);\n if (applyTo) {\n var num = applyTo.length;\n for (var 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 ProjectionNode.prototype.clearSnapshot = function () {\n this.resumeFrom = this.snapshot = undefined;\n };\n // Only run on root\n ProjectionNode.prototype.resetTree = function () {\n this.root.nodes.forEach(function (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 return ProjectionNode;\n }());\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a, _b, _c, _d;\n var snapshot = (_b = (_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) !== null && _b !== void 0 ? _b : node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n var _e = node.layout, layout_1 = _e.actual, measuredLayout = _e.measured;\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 (node.options.animationType === \"size\") {\n eachAxis(function (axis) {\n var axisSnapshot = snapshot.isShared\n ? snapshot.measured[axis]\n : snapshot.layout[axis];\n var length = calcLength(axisSnapshot);\n axisSnapshot.min = layout_1[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (node.options.animationType === \"position\") {\n eachAxis(function (axis) {\n var axisSnapshot = snapshot.isShared\n ? snapshot.measured[axis]\n : snapshot.layout[axis];\n var length = calcLength(layout_1[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n var layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout_1, snapshot.layout);\n var visualDelta = createDelta();\n if (snapshot.isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measured);\n }\n else {\n calcBoxDelta(visualDelta, layout_1, snapshot.layout);\n }\n var hasLayoutChanged = !isDeltaZero(layoutDelta);\n var hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n node.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 (node.relativeParent && !node.relativeParent.resumeFrom) {\n var _f = node.relativeParent, parentSnapshot = _f.snapshot, parentLayout = _f.layout;\n if (parentSnapshot && parentLayout) {\n var relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layout, parentSnapshot.layout);\n var relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout_1, parentLayout.actual);\n if (!boxEquals(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout: layout_1,\n snapshot: snapshot,\n delta: visualDelta,\n layoutDelta: layoutDelta,\n hasLayoutChanged: hasLayoutChanged,\n hasRelativeTargetChanged: hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n (_d = (_c = node.options).onExitComplete) === null || _d === void 0 ? void 0 : _d.call(_c);\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 clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction resetTransformStyle(node) {\n var visualElement = node.options.visualElement;\n if (visualElement === null || visualElement === void 0 ? void 0 : visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notifyBeforeLayoutMeasure();\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\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}\nvar defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nfunction mountNodeEarly(node, id) {\n /**\n * Rather than searching the DOM from document we can search the\n * path for the deepest mounted ancestor and search from there\n */\n var searchNode = node.root;\n for (var i = node.path.length - 1; i >= 0; i--) {\n if (Boolean(node.path[i].instance)) {\n searchNode = node.path[i];\n break;\n }\n }\n var searchElement = searchNode && searchNode !== node.root ? searchNode.instance : document;\n var element = searchElement.querySelector(\"[data-projection-id=\\\"\".concat(id, \"\\\"]\"));\n if (element)\n node.mount(element, true);\n}\nfunction roundAxis(axis) {\n axis.min = Math.round(axis.min);\n axis.max = Math.round(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\n\nexport { createProjectionNode, globalProjectionState, mixAxis, mixAxisDelta, mixBox };\n","import { useConstant } from '../../utils/use-constant.mjs';\nimport { globalProjectionState } from './create-projection-node.mjs';\n\nvar id = 1;\nfunction useProjectionId() {\n return useConstant(function () {\n if (globalProjectionState.hasEverUpdated) {\n return id++;\n }\n });\n}\n\nexport { useProjectionId };\n","import { createContext } from 'react';\n\n/**\n * @internal\n */\nvar LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { createContext } from 'react';\n\n/**\n * @internal\n */\nvar SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { useContext } from 'react';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nfunction useProjection(projectionId, _a, visualElement, ProjectionNodeConstructor) {\n var _b;\n var layoutId = _a.layoutId, layout = _a.layout, drag = _a.drag, dragConstraints = _a.dragConstraints, layoutScroll = _a.layoutScroll;\n var initialPromotionConfig = useContext(SwitchLayoutGroupContext);\n if (!ProjectionNodeConstructor ||\n !visualElement ||\n (visualElement === null || visualElement === void 0 ? void 0 : visualElement.projection)) {\n return;\n }\n visualElement.projection = new ProjectionNodeConstructor(projectionId, visualElement.getLatestValues(), (_b = visualElement.parent) === null || _b === void 0 ? void 0 : _b.projection);\n visualElement.projection.setOptions({\n layoutId: layoutId,\n layout: layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement: visualElement,\n scheduleRender: function () { return visualElement.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: initialPromotionConfig,\n layoutScroll: layoutScroll,\n });\n}\n\nexport { useProjection };\n","import { __extends } from 'tslib';\nimport React__default from 'react';\n\nvar VisualElementHandler = /** @class */ (function (_super) {\n __extends(VisualElementHandler, _super);\n function VisualElementHandler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Update visual element props as soon as we know this update is going to be commited.\n */\n VisualElementHandler.prototype.getSnapshotBeforeUpdate = function () {\n this.updateProps();\n return null;\n };\n VisualElementHandler.prototype.componentDidUpdate = function () { };\n VisualElementHandler.prototype.updateProps = function () {\n var _a = this.props, visualElement = _a.visualElement, props = _a.props;\n if (visualElement)\n visualElement.setProps(props);\n };\n VisualElementHandler.prototype.render = function () {\n return this.props.children;\n };\n return VisualElementHandler;\n}(React__default.Component));\n\nexport { VisualElementHandler };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { useFeatures } from './features/use-features.mjs';\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, featureDefinitions } from './features/definitions.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { useProjectionId } from '../projection/node/id.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { useProjection } from './features/use-projection.mjs';\nimport { VisualElementHandler } from './utils/VisualElementHandler.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 *\n * @internal\n */\nfunction createMotionComponent(_a) {\n var preloadedFeatures = _a.preloadedFeatures, createVisualElement = _a.createVisualElement, projectionNodeConstructor = _a.projectionNodeConstructor, useRender = _a.useRender, useVisualState = _a.useVisualState, Component = _a.Component;\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n var layoutId = useLayoutId(props);\n props = __assign(__assign({}, props), { layoutId: layoutId });\n /**\n * If we're rendering in a static environment, we only visually update the component\n * as a result of a React-rerender rather than interactions or animations. This\n * means we don't need to load additional memory structures like VisualElement,\n * or any gesture/animation features.\n */\n var config = useContext(MotionConfigContext);\n var features = null;\n var context = useCreateMotionContext(props);\n /**\n * Create a unique projection ID for this component. If a new component is added\n * during a layout animation we'll use this to query the DOM and hydrate its ref early, allowing\n * us to measure it as soon as any layout effect flushes pending layout animations.\n *\n * Performance note: It'd be better not to have to search the DOM for these elements.\n * For newly-entering components it could be enough to only correct treeScale, in which\n * case we could mount in a scale-correction mode. This wouldn't be enough for\n * shared element transitions however. Perhaps for those we could revert to a root node\n * that gets forceRendered and layout animations are triggered on its layout effect.\n */\n var projectionId = config.isStatic ? undefined : useProjectionId();\n /**\n *\n */\n var visualState = useVisualState(props, config.isStatic);\n if (!config.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, __assign(__assign({}, config), props), createVisualElement);\n useProjection(projectionId, props, context.visualElement, projectionNodeConstructor ||\n featureDefinitions.projectionNodeConstructor);\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 features = useFeatures(props, context.visualElement, preloadedFeatures);\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(VisualElementHandler, { visualElement: context.visualElement, props: __assign(__assign({}, config), props) },\n features,\n React.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, projectionId, useMotionRef(visualState, context.visualElement, externalRef), visualState, config.isStatic, context.visualElement))));\n }\n return forwardRef(MotionComponent);\n}\nfunction useLayoutId(_a) {\n var _b;\n var layoutId = _a.layoutId;\n var layoutGroupId = (_b = useContext(LayoutGroupContext)) === null || _b === void 0 ? void 0 : _b.id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\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 <div ref={ref} />\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig) {\n if (customMotionComponentConfig === void 0) { 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 var 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: function (_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 */\nvar 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 \"svg\",\n \"switch\",\n \"symbol\",\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","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { isTransformProp, isTransformOriginProp } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, _a) {\n var layout = _a.layout, layoutId = _a.layoutId;\n return (isTransformProp(key) ||\n isTransformOriginProp(key) ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","import { sortTransformProps } from './transform.mjs';\n\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\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(_a, _b, transformIsDefault, transformTemplate) {\n var transform = _a.transform, transformKeys = _a.transformKeys;\n var _c = _b.enableHardwareAcceleration, enableHardwareAcceleration = _c === void 0 ? true : _c, _d = _b.allowTransformNone, allowTransformNone = _d === void 0 ? true : _d;\n // The transform string we're going to build into.\n var transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Track whether the defined transform has a defined z so we don't add a\n // second to enable hardware acceleration\n var transformHasZ = false;\n // Loop over each transform and build them into transformString\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n transformString += \"\".concat(translateAlias[key] || key, \"(\").concat(transform[key], \") \");\n if (key === \"z\")\n transformHasZ = true;\n }\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n }\n else {\n transformString = transformString.trim();\n }\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/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\nfunction buildTransformOrigin(_a) {\n var _b = _a.originX, originX = _b === void 0 ? \"50%\" : _b, _c = _a.originY, originY = _c === void 0 ? \"50%\" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;\n return \"\".concat(originX, \" \").concat(originY, \" \").concat(originZ);\n}\n\nexport { buildTransform, buildTransformOrigin };\n","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function (value, type) {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","import { buildTransform, buildTransformOrigin } from './build-transform.mjs';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.mjs';\nimport { isTransformProp, isTransformOriginProp } 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 var _a;\n var style = state.style, vars = state.vars, transform = state.transform, transformKeys = state.transformKeys, transformOrigin = state.transformOrigin;\n // Empty the transformKeys array. As we're throwing out refs to its items\n // this might not be as cheap as suspected. Maybe using the array as a buffer\n // with a manual incrementation would be better.\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n var hasTransform = false;\n var hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n var 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 (var key in latestValues) {\n var value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariable(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n var valueType = numberValueTypes[key];\n var valueAsType = getValueAsType(value, valueType);\n if (isTransformProp(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\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 !== ((_a = valueType.default) !== null && _a !== void 0 ? _a : 0))\n transformIsNone = false;\n }\n else if (isTransformOriginProp(key)) {\n transformOrigin[key] = valueAsType;\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (hasTransform) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n else if (transformTemplate) {\n style.transform = transformTemplate({}, \"\");\n }\n else if (!latestValues.transform && style.transform) {\n style.transform = \"none\";\n }\n if (hasTransformOrigin) {\n style.transformOrigin = buildTransformOrigin(transformOrigin);\n }\n}\n\nexport { buildHTMLStyles };\n","var createHtmlRenderState = function () { return ({\n style: {},\n transform: {},\n transformKeys: [],\n transformOrigin: {},\n vars: {},\n}); };\n\nexport { createHtmlRenderState };\n","import { __assign } from 'tslib';\nimport { 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 (var key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues(_a, visualState, isStatic) {\n var transformTemplate = _a.transformTemplate;\n return useMemo(function () {\n var state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n var vars = state.vars, style = state.style;\n return __assign(__assign({}, vars), style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n var styleProp = props.style || {};\n var 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 if (props.transformValues) {\n style = props.transformValues(style);\n }\n return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n var htmlProps = {};\n var style = useStyle(props, visualState, isStatic);\n if (Boolean(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-\".concat(props.drag === \"x\" ? \"y\" : \"x\");\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps, useStyle };\n","/**\n * A list of all valid MotionProps.\n *\n * @internalremarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\n \"initial\",\n \"animate\",\n \"exit\",\n \"style\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"layoutDependency\",\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 \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"dragSnapToOrigin\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"whileDrag\",\n \"onPan\",\n \"onPanStart\",\n \"onPanEnd\",\n \"onPanSessionStart\",\n \"onTap\",\n \"onTapStart\",\n \"onTapCancel\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"whileFocus\",\n \"whileTap\",\n \"whileHover\",\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"viewport\",\n \"layoutScroll\",\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 validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nvar shouldForward = function (key) { return !isValidMotionProp(key); };\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = function (key) {\n return key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n };\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 var filteredProps = {};\n for (var key in props) {\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 { px } from 'style-value-types';\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 var pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n var pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return \"\".concat(pxOriginX, \" \").concat(pxOriginY);\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from 'style-value-types';\n\nvar dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nvar 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, offset, useDashCase) {\n if (spacing === void 0) { spacing = 1; }\n if (offset === void 0) { offset = 0; }\n if (useDashCase === void 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 var keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n var pathLength = px.transform(length);\n var pathSpacing = px.transform(spacing);\n attrs[keys.array] = \"\".concat(pathLength, \" \").concat(pathSpacing);\n}\n\nexport { buildSVGPath };\n","import { __rest } from 'tslib';\nimport { 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, _a, options, transformTemplate) {\n var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, \n // This is object creation, which we try to avoid per-frame.\n latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n buildHTMLStyles(state, latest, options, transformTemplate);\n state.attrs = state.style;\n state.style = {};\n var attrs = state.attrs, style = state.style, dimensions = state.dimensions;\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 // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\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 { __assign } from 'tslib';\nimport { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nvar createSvgRenderState = function () { return (__assign(__assign({}, createHtmlRenderState()), { attrs: {} })); };\n\nexport { createSvgRenderState };\n","import { __assign } from 'tslib';\nimport { 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';\n\nfunction useSVGProps(props, visualState) {\n var visualProps = useMemo(function () {\n var state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);\n return __assign(__assign({}, state.attrs), { style: __assign({}, state.style) });\n }, [visualState]);\n if (props.style) {\n var rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = __assign(__assign({}, rawStyles), visualProps.style);\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { __assign } from 'tslib';\nimport { 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';\n\nfunction createUseRender(forwardMotionProps) {\n if (forwardMotionProps === void 0) { forwardMotionProps = false; }\n var useRender = function (Component, props, projectionId, ref, _a, isStatic) {\n var latestValues = _a.latestValues;\n var useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n var visualProps = useVisualProps(props, latestValues, isStatic);\n var filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n var elementProps = __assign(__assign(__assign({}, filteredProps), visualProps), { ref: ref });\n if (projectionId) {\n elementProps[\"data-projection-id\"] = projectionId;\n }\n return createElement(Component, elementProps);\n };\n return useRender;\n}\n\nexport { createUseRender };\n","var CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\nvar camelToDash = function (str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\nexport { camelToDash };\n","function renderHTML(element, _a, styleProp, projection) {\n var style = _a.style, vars = _a.vars;\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (var 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 */\nvar 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]);\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) {\n renderHTML(element, renderState);\n for (var 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) {\n var style = props.style;\n var newValues = {};\n for (var key in style) {\n if (isMotionValue(style[key]) || 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';\n\nfunction scrapeMotionValuesFromProps(props) {\n var newValues = scrapeMotionValuesFromProps$1(props);\n for (var key in props) {\n if (isMotionValue(props[key])) {\n var targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","import { __rest } from 'tslib';\nimport { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, resolveVariantFromProps } from '../../render/utils/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';\n\nfunction makeState(_a, props, context, presenceContext) {\n var scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps, createRenderState = _a.createRenderState, onMount = _a.onMount;\n var state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = function (instance) { return onMount(props, instance, state); };\n }\n return state;\n}\nvar makeUseVisualState = function (config) {\n return function (props, isStatic) {\n var context = useContext(MotionContext);\n var presenceContext = useContext(PresenceContext);\n return isStatic\n ? makeState(config, props, context, presenceContext)\n : useConstant(function () {\n return makeState(config, props, context, presenceContext);\n });\n };\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n var values = {};\n var blockInitialAnimation = (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false;\n var motionValues = scrapeMotionValues(props);\n for (var key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n var initial = props.initial, animate = props.animate;\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n if (context &&\n isVariantNode &&\n !isControllingVariants &&\n props.inherit !== false) {\n initial !== null && initial !== void 0 ? initial : (initial = context.initial);\n animate !== null && animate !== void 0 ? animate : (animate = context.animate);\n }\n var initialAnimationIsBlocked = blockInitialAnimation || initial === false;\n var variantToSet = initialAnimationIsBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n var list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach(function (definition) {\n var resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest(resolved, [\"transitionEnd\", \"transition\"]);\n for (var key in target) {\n var 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 var index = initialAnimationIsBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (var 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';\n\nvar svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: function (props, instance, _a) {\n var renderState = _a.renderState, latestValues = _a.latestValues;\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 buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, props.transformTemplate);\n // TODO: Replace with direct assignment\n renderSVG(instance, renderState);\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\nvar htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { __assign } from 'tslib';\nimport { 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, _a, preloadedFeatures, createVisualElement, projectionNodeConstructor) {\n var _b = _a.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;\n var baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return __assign(__assign({}, baseConfig), { preloadedFeatures: preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement: createVisualElement, projectionNodeConstructor: projectionNodeConstructor, Component: Component });\n}\n\nexport { createDomMotionConfig };\n","var AnimationType;\n(function (AnimationType) {\n AnimationType[\"Animate\"] = \"animate\";\n AnimationType[\"Hover\"] = \"whileHover\";\n AnimationType[\"Tap\"] = \"whileTap\";\n AnimationType[\"Drag\"] = \"whileDrag\";\n AnimationType[\"Focus\"] = \"whileFocus\";\n AnimationType[\"InView\"] = \"whileInView\";\n AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options) {\n target.addEventListener(eventName, handler, options);\n return function () { return target.removeEventListener(eventName, handler, options); };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return <div ref={ref} />\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(function () {\n var element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","import { AnimationType } from '../render/utils/types.mjs';\nimport { useDomEvent } from '../events/use-dom-event.mjs';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture(_a) {\n var whileFocus = _a.whileFocus, visualElement = _a.visualElement;\n var onFocus = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, true);\n };\n var onBlur = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, false);\n };\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n var listener = function (event) {\n return handler(event, extractEventInfo(event));\n };\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","import { isBrowser } from '../utils/is-browser.mjs';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nvar supportsPointerEvents = function () {\n return isBrowser && window.onpointerdown === null;\n};\nvar supportsTouchEvents = function () {\n return isBrowser && window.ontouchstart === null;\n};\nvar supportsMouseEvents = function () {\n return isBrowser && window.onmousedown === null;\n};\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","import { addDomEvent, useDomEvent } from './use-dom-event.mjs';\nimport { wrapHandler } from './event-info.mjs';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.mjs';\n\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\n","function createLock(name) {\n var lock = null;\n return function () {\n var openLock = function () {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n var lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n var openHorizontal_1 = globalHorizontalLock();\n var openVertical_1 = globalVerticalLock();\n if (openHorizontal_1 && openVertical_1) {\n lock = function () {\n openHorizontal_1();\n openVertical_1();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal_1)\n openHorizontal_1();\n if (openVertical_1)\n openVertical_1();\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 var openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","import { isMouseEvent } from './utils/event-type.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return function (event, info) {\n var _a;\n if (!isMouseEvent(event) || isDragActive())\n return;\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Hover, isActive);\n callback === null || callback === void 0 ? void 0 : callback(event, info);\n };\n}\nfunction useHoverGesture(_a) {\n var onHoverStart = _a.onHoverStart, onHoverEnd = _a.onHoverEnd, whileHover = _a.whileHover, visualElement = _a.visualElement;\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n ? createHoverEvent(visualElement, true, onHoverStart)\n : undefined);\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n ? createHoverEvent(visualElement, false, onHoverEnd)\n : undefined);\n}\n\nexport { useHoverGesture };\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 */\nvar isNodeOrChild = function (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 { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(function () { return function () { return callback(); }; }, []);\n}\n\nexport { useUnmountEffect };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture(_a) {\n var onTap = _a.onTap, onTapStart = _a.onTapStart, onTapCancel = _a.onTapCancel, whileTap = _a.whileTap, visualElement = _a.visualElement;\n var hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n var isPressing = useRef(false);\n var cancelPointerEndListeners = useRef(null);\n function removePointerEndListener() {\n var _a;\n (_a = cancelPointerEndListeners.current) === null || _a === void 0 ? void 0 : _a.call(cancelPointerEndListeners);\n cancelPointerEndListeners.current = null;\n }\n function checkPointerEnd() {\n var _a;\n removePointerEndListener();\n isPressing.current = false;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n function onPointerUp(event, info) {\n if (!checkPointerEnd())\n return;\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(visualElement.getInstance(), event.target)\n ? onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info)\n : onTap === null || onTap === void 0 ? void 0 : onTap(event, info);\n }\n function onPointerCancel(event, info) {\n if (!checkPointerEnd())\n return;\n onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info);\n }\n function onPointerDown(event, info) {\n var _a;\n removePointerEndListener();\n if (isPressing.current)\n return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp), addPointerEvent(window, \"pointercancel\", onPointerCancel));\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, true);\n onTapStart === null || onTapStart === void 0 ? void 0 : onTapStart(event, info);\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","import { __rest, __assign } from 'tslib';\n\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 */\nvar 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 */\nvar observers = new WeakMap();\nvar fireObserverCallback = function (entry) {\n var _a;\n (_a = observerCallbacks.get(entry.target)) === null || _a === void 0 ? void 0 : _a(entry);\n};\nvar fireAllObserverCallbacks = function (entries) {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver(_a) {\n var root = _a.root, options = __rest(_a, [\"root\"]);\n var 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 var rootObservers = observers.get(lookupRoot);\n var 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, __assign({ root: root }, options));\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n var rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return function () {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { useRef, useEffect } from 'react';\nimport { AnimationType } from '../../../render/utils/types.mjs';\nimport { warnOnce } from '../../../utils/warn-once.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nfunction useViewport(_a) {\n var visualElement = _a.visualElement, whileInView = _a.whileInView, onViewportEnter = _a.onViewportEnter, onViewportLeave = _a.onViewportLeave, _b = _a.viewport, viewport = _b === void 0 ? {} : _b;\n var state = useRef({\n hasEnteredView: false,\n isInView: false,\n });\n var shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);\n if (viewport.once && state.current.hasEnteredView)\n shouldObserve = false;\n var useObserver = typeof IntersectionObserver === \"undefined\"\n ? useMissingIntersectionObserver\n : useIntersectionObserver;\n useObserver(shouldObserve, state.current, visualElement, viewport);\n}\nvar thresholdNames = {\n some: 0,\n all: 1,\n};\nfunction useIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var root = _a.root, rootMargin = _a.margin, _b = _a.amount, amount = _b === void 0 ? \"some\" : _b, once = _a.once;\n useEffect(function () {\n if (!shouldObserve)\n return;\n var options = {\n root: root === null || root === void 0 ? void 0 : root.current,\n rootMargin: rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n var intersectionCallback = function (entry) {\n var _a;\n var isIntersecting = entry.isIntersecting;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (state.isInView === isIntersecting)\n return;\n state.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 && state.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n state.hasEnteredView = true;\n }\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, isIntersecting);\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n var props = visualElement.getProps();\n var callback = isIntersecting\n ? props.onViewportEnter\n : props.onViewportLeave;\n callback === null || callback === void 0 ? void 0 : callback(entry);\n };\n return observeIntersection(visualElement.getInstance(), options, intersectionCallback);\n }, [shouldObserve, root, rootMargin, amount]);\n}\n/**\n * If IntersectionObserver is missing, we activate inView and fire onViewportEnter\n * on mount. This way, the page will be in the state the author expects users\n * to see it in for everyone.\n */\nfunction useMissingIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var _b = _a.fallback, fallback = _b === void 0 ? true : _b;\n useEffect(function () {\n if (!shouldObserve || !fallback)\n return;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, \"IntersectionObserver not available on this device. whileInView animations will trigger on mount.\");\n }\n /**\n * Fire this in an rAF because, at this point, the animation state\n * won't have flushed for the first time and there's certain logic in\n * there that behaves differently on the initial animation.\n *\n * This hook should be quite rarely called so setting this in an rAF\n * is preferred to changing the behaviour of the animation state.\n */\n requestAnimationFrame(function () {\n var _a;\n state.hasEnteredView = true;\n var onViewportEnter = visualElement.getProps().onViewportEnter;\n onViewportEnter === null || onViewportEnter === void 0 ? void 0 : onViewportEnter(null);\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, true);\n });\n }, [shouldObserve]);\n}\n\nexport { useViewport };\n","var makeRenderlessComponent = function (hook) { return function (props) {\n hook(props);\n return null;\n}; };\n\nexport { makeRenderlessComponent };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.mjs';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.mjs';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.mjs';\nimport { useViewport } from './viewport/use-viewport.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar gestureAnimations = {\n inView: makeRenderlessComponent(useViewport),\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useConstant } from './use-constant.mjs';\n\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useId = function () { return useConstant(incrementId); };\n/**\n * Ideally we'd use the following code to support React 18 optionally.\n * But this fairly fails in Webpack (otherwise treeshaking wouldn't work at all).\n * Need to come up with a different way of figuring this out.\n */\n// export const useId = (React as any).useId\n// ? (React as any).useId\n// : () => useConstant(incrementId)\n\nexport { useId };\n","import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useId } from '../../utils/use-id.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 <div />\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 var context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\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 // Replace with useId when released in React\n var id = useId();\n useEffect(function () { return register(id); }, []);\n var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : 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 <div />\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","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n var prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (var i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nvar isNumericalString = function (v) { return /^\\-?\\d*\\.?\\d+$/.test(v); };\n\nexport { isNumericalString };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nvar isZeroValueString = function (v) { return /^0[^.\\s]+$/.test(v); };\n\nexport { isZeroValueString };\n","/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function (v) { return function (type) { return type.test(v); }; };\n\nexport { testValueType };\n","/**\n * ValueType for \"auto\"\n */\nvar auto = {\n test: function (v) { return v === \"auto\"; },\n parse: function (v) { return v; },\n};\n\nexport { auto };\n","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nvar findDimensionValueType = function (v) {\n return dimensionValueTypes.find(testValueType(v));\n};\n\nexport { dimensionValueTypes, findDimensionValueType };\n","import { __spreadArray, __read } from 'tslib';\nimport { color, complex } from 'style-value-types';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nvar valueTypes = __spreadArray(__spreadArray([], __read(dimensionValueTypes), false), [color, complex], false);\n/**\n * Tests a value against the list of ValueTypes\n */\nvar findValueType = function (v) { return valueTypes.find(testValueType(v)); };\n\nexport { findValueType };\n","import { __rest, __assign, __spreadArray, __read } from 'tslib';\nimport { complex } from 'style-value-types';\nimport { 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 { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './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 var resolved = resolveVariant(visualElement, definition);\n var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest(_a, [\"transitionEnd\", \"transition\"]);\n target = __assign(__assign({}, target), transitionEnd);\n for (var key in target) {\n var value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n var reversedLabels = __spreadArray([], __read(variantLabels), false).reverse();\n reversedLabels.forEach(function (key) {\n var _a;\n var variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setVariants(child, variantLabels);\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, _c;\n var _d;\n var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });\n var numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (var i = 0; i < numNewValues; i++) {\n var key = newValueKeys[i];\n var targetValue = target[key];\n var 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));\n (_c = (_d = origin)[key]) !== null && _c !== void 0 ? _c : (_d[key] = value);\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n var valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a, _b;\n var origin = {};\n for (var key in target) {\n origin[key] =\n (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","import { __read, __rest, __assign } from 'tslib';\nimport { startAnimation } from '../../animation/utils/transitions.mjs';\nimport { setTarget } from './setters.mjs';\nimport { resolveVariant } from './variants.mjs';\nimport { isTransformProp } from '../html/utils/transform.mjs';\n\n/**\n * @internal\n */\nfunction animateVisualElement(visualElement, definition, options) {\n if (options === void 0) { options = {}; }\n visualElement.notifyAnimationStart(definition);\n var animation;\n if (Array.isArray(definition)) {\n var animations = definition.map(function (variant) {\n return animateVariant(visualElement, variant, options);\n });\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n var resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = animateTarget(visualElement, resolvedDefinition, options);\n }\n return animation.then(function () {\n return visualElement.notifyAnimationComplete(definition);\n });\n}\nfunction animateVariant(visualElement, variant, options) {\n var _a;\n if (options === void 0) { options = {}; }\n var resolved = resolveVariant(visualElement, variant, options.custom);\n var _b = (resolved || {}).transition, transition = _b === void 0 ? visualElement.getDefaultTransition() || {} : _b;\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 var getAnimation = resolved\n ? function () { return animateTarget(visualElement, resolved, options); }\n : function () { return 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 var getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size)\n ? function (forwardDelay) {\n if (forwardDelay === void 0) { forwardDelay = 0; }\n var _a = transition.delayChildren, delayChildren = _a === void 0 ? 0 : _a, staggerChildren = transition.staggerChildren, staggerDirection = transition.staggerDirection;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : function () { return 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 var when = transition.when;\n if (when) {\n var _c = __read(when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation], 2), first = _c[0], last = _c[1];\n return first().then(last);\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\n/**\n * @internal\n */\nfunction animateTarget(visualElement, definition, _a) {\n var _b;\n var _c = _a === void 0 ? {} : _a, _d = _c.delay, delay = _d === void 0 ? 0 : _d, transitionOverride = _c.transitionOverride, type = _c.type;\n var _e = visualElement.makeTargetAnimatable(definition), _f = _e.transition, transition = _f === void 0 ? visualElement.getDefaultTransition() : _f, transitionEnd = _e.transitionEnd, target = __rest(_e, [\"transition\", \"transitionEnd\"]);\n if (transitionOverride)\n transition = transitionOverride;\n var animations = [];\n var animationTypeState = type && ((_b = visualElement.animationState) === null || _b === void 0 ? void 0 : _b.getState()[type]);\n for (var key in target) {\n var value = visualElement.getValue(key);\n var valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n var valueTransition = __assign({ delay: delay }, transition);\n /**\n * Make animation instant if this is a transform prop and we should reduce motion.\n */\n if (visualElement.shouldReduceMotion && isTransformProp(key)) {\n valueTransition = __assign(__assign({}, valueTransition), { type: false, delay: 0 });\n }\n var animation = startAnimation(key, value, valueTarget, valueTransition);\n animations.push(animation);\n }\n return Promise.all(animations).then(function () {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n}\nfunction animateChildren(visualElement, variant, delayChildren, staggerChildren, staggerDirection, options) {\n if (delayChildren === void 0) { delayChildren = 0; }\n if (staggerChildren === void 0) { staggerChildren = 0; }\n if (staggerDirection === void 0) { staggerDirection = 1; }\n var animations = [];\n var maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n var generateStaggerDuration = staggerDirection === 1\n ? function (i) {\n if (i === void 0) { i = 0; }\n return i * staggerChildren;\n }\n : function (i) {\n if (i === void 0) { i = 0; }\n return maxStaggerDuration - i * staggerChildren;\n };\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach(function (child, i) {\n animations.push(animateVariant(child, variant, __assign(__assign({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function () { return child.notifyAnimationComplete(variant); }));\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.forEachValue(function (value) { return value.stop(); });\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\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(_a, key) {\n var protectedKeys = _a.protectedKeys, needsAnimating = _a.needsAnimating;\n var shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };\n","import { __spreadArray, __read, __assign, __rest } from 'tslib';\nimport { 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 { animateVisualElement } from './animation.mjs';\nimport { AnimationType } from './types.mjs';\nimport { isVariantLabels, resolveVariant, isVariantLabel } from './variants.mjs';\n\nvar variantPriorityOrder = [\n AnimationType.Animate,\n AnimationType.InView,\n AnimationType.Focus,\n AnimationType.Hover,\n AnimationType.Tap,\n AnimationType.Drag,\n AnimationType.Exit,\n];\nvar reversePriorityOrder = __spreadArray([], __read(variantPriorityOrder), false).reverse();\nvar numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return function (animations) {\n return Promise.all(animations.map(function (_a) {\n var animation = _a.animation, options = _a.options;\n return animateVisualElement(visualElement, animation, options);\n }));\n };\n}\nfunction createAnimationState(visualElement) {\n var animate = animateList(visualElement);\n var state = createState();\n var allAnimatedKeys = {};\n var 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 var buildResolvedTypeValues = function (acc, definition) {\n var resolved = resolveVariant(visualElement, definition);\n if (resolved) {\n resolved.transition; var transitionEnd = resolved.transitionEnd, target = __rest(resolved, [\"transition\", \"transitionEnd\"]);\n acc = __assign(__assign(__assign({}, acc), target), transitionEnd);\n }\n return acc;\n };\n function isAnimated(key) {\n return allAnimatedKeys[key] !== undefined;\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 var _a;\n var props = visualElement.getProps();\n var 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 var 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 var 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 var 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 var removedVariantIndex = Infinity;\n var _loop_1 = function (i) {\n var type = reversePriorityOrder[i];\n var typeState = state[type];\n var prop = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];\n var 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 var 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 var 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 = __assign({}, 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 return \"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 var variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n var 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 var 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 var 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 var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;\n var allKeys = __assign(__assign({}, prevResolvedValues), resolvedValues);\n var markToAnimate = function (key) {\n shouldAnimateType = true;\n removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\n };\n for (var key in allKeys) {\n var next = resolvedValues[key];\n var 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 = __assign(__assign({}, 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.apply(animations, __spreadArray([], __read(definitionList.map(function (animation) { return ({\n animation: animation,\n options: __assign({ type: type }, options),\n }); })), false));\n }\n };\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 (var i = 0; i < numAnimationTypes; i++) {\n _loop_1(i);\n }\n allAnimatedKeys = __assign({}, encounteredKeys);\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 var fallbackAnimation_1 = {};\n removedKeys.forEach(function (key) {\n var fallbackTarget = visualElement.getBaseTarget(key);\n if (fallbackTarget !== undefined) {\n fallbackAnimation_1[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation_1 });\n }\n var 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(function (child) { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n var animations = animateChanges(options, type);\n for (var key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n isAnimated: isAnimated,\n animateChanges: animateChanges,\n setActive: setActive,\n setAnimateFunction: setAnimateFunction,\n getState: function () { return state; },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (isVariantLabels(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive) {\n if (isActive === void 0) { isActive = false; }\n return {\n isActive: isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n var _a;\n return _a = {},\n _a[AnimationType.Animate] = createTypeState(true),\n _a[AnimationType.InView] = createTypeState(),\n _a[AnimationType.Hover] = createTypeState(),\n _a[AnimationType.Tap] = createTypeState(),\n _a[AnimationType.Drag] = createTypeState(),\n _a[AnimationType.Focus] = createTypeState(),\n _a[AnimationType.Exit] = createTypeState(),\n _a;\n}\n\nexport { checkVariantsDidChange, createAnimationState, variantPriorityOrder };\n","import { __read } from 'tslib';\nimport { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { createAnimationState } from '../../render/utils/animation-state.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar animations = {\n animation: makeRenderlessComponent(function (_a) {\n var visualElement = _a.visualElement, animate = _a.animate;\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 visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n if (isAnimationControls(animate)) {\n useEffect(function () { return animate.subscribe(visualElement); }, [animate]);\n }\n }),\n exit: makeRenderlessComponent(function (props) {\n var custom = props.custom, visualElement = props.visualElement;\n var _a = __read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];\n var presenceContext = useContext(PresenceContext);\n useEffect(function () {\n var _a, _b;\n visualElement.isPresent = isPresent;\n var animation = (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Exit, !isPresent, { custom: (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.custom) !== null && _b !== void 0 ? _b : custom });\n !isPresent && (animation === null || animation === void 0 ? void 0 : animation.then(safeToRemove));\n }, [isPresent]);\n }),\n};\n\nexport { animations };\n","import { __assign } from 'tslib';\nimport { isMouseEvent, isTouchEvent } from './utils/event-type.mjs';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { distance, pipe } from 'popmotion';\n\n/**\n * @internal\n */\nvar PanSession = /** @class */ (function () {\n function PanSession(event, handlers, _a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, transformPagePoint = _b.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 = function () {\n if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))\n return;\n var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n var 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 var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n var point = info.point;\n var timestamp = getFrameData().timestamp;\n _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));\n var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;\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 = function (event, info) {\n _this.lastMoveEvent = event;\n _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `<select>`\n if (isMouseEvent(event) && event.buttons === 0) {\n _this.handlePointerUp(event, info);\n return;\n }\n // Throttle mouse move event to once per frame\n sync.update(_this.updatePoint, true);\n };\n this.handlePointerUp = function (event, info) {\n _this.end();\n var _a = _this.handlers, onEnd = _a.onEnd, onSessionEnd = _a.onSessionEnd;\n var panInfo = getPanInfo(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 (isTouchEvent(event) && event.touches.length > 1)\n return;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n var info = extractEventInfo(event);\n var initialInfo = transformPoint(info, this.transformPagePoint);\n var point = initialInfo.point;\n var timestamp = getFrameData().timestamp;\n this.history = [__assign(__assign({}, point), { timestamp: timestamp })];\n var onSessionStart = handlers.onSessionStart;\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 PanSession.prototype.updateHandlers = function (handlers) {\n this.handlers = handlers;\n };\n PanSession.prototype.end = function () {\n this.removeListeners && this.removeListeners();\n cancelSync.update(this.updatePoint);\n };\n return PanSession;\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(_a, history) {\n var point = _a.point;\n return {\n point: 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 var i = history.length - 1;\n var timestampedPoint = null;\n var 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 var time = (lastPoint.timestamp - timestampedPoint.timestamp) / 1000;\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n var 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 { __read } from 'tslib';\nimport { clamp, mix, progress } from 'popmotion';\nimport { calcLength } from '../../../projection/geometry/delta-calc.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, _a, elastic) {\n var min = _a.min, max = _a.max;\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, _a) {\n var top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.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 var _a;\n var min = constraintsAxis.min - layoutAxis.min;\n var 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 _a = __read([max, min], 2), min = _a[0], max = _a[1];\n }\n return { min: min, max: 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 var origin = 0.5;\n var sourceLength = calcLength(source);\n var 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 var 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}\nvar defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic) {\n if (dragElastic === void 0) { 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 var _a;\n return typeof dragElastic === \"number\"\n ? dragElastic\n : (_a = dragElastic[label]) !== null && _a !== void 0 ? _a : 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\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(_a) {\n var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox(_a) {\n var x = _a.x, y = _a.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 var topLeft = transformPoint({ x: point.left, y: point.top });\n var 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","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 var viewportBox = measureViewportBox(element, transformPagePoint);\n var scroll = rootProjectionNode.scroll;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.x);\n translateAxis(viewportBox.y, scroll.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { __assign } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { PanSession } from '../PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/use-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, calcOrigin, defaultElastic } from './utils/constraints.mjs';\nimport { AnimationType } from '../../render/utils/types.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 { startAnimation } from '../../animation/utils/transitions.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/use-dom-event.mjs';\nimport { mix } from 'popmotion';\nimport { percent } from 'style-value-types';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\n\nvar elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: AnyPointerEvent\nvar VisualElementDragControls = /** @class */ (function () {\n function VisualElementDragControls(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 VisualElementDragControls.prototype.start = function (originEvent, _a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, _c = _b.snapToCursor, snapToCursor = _c === void 0 ? false : _c;\n /**\n * Don't start dragging if this component is exiting\n */\n if (this.visualElement.isPresent === false)\n return;\n var onSessionStart = function (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 var onStart = function (event, info) {\n var _a;\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n var _b = _this.getProps(), drag = _b.drag, dragPropagation = _b.dragPropagation, onDragStart = _b.onDragStart;\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(function (axis) {\n var _a, _b;\n var 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 var measuredAxis = (_b = (_a = _this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.actual[axis];\n if (measuredAxis) {\n var length_1 = calcLength(measuredAxis);\n current = length_1 * (parseFloat(current) / 100);\n }\n }\n _this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event, info);\n (_a = _this.visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Drag, true);\n };\n var onMove = function (event, info) {\n // latestPointerEvent = event\n var _a = _this.getProps(), dragPropagation = _a.dragPropagation, dragDirectionLock = _a.dragDirectionLock, onDirectionLock = _a.onDirectionLock, onDrag = _a.onDrag;\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !_this.openGlobalLock)\n return;\n var offset = info.offset;\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 === null || onDirectionLock === void 0 ? void 0 : 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.syncRender();\n /**\n * This must fire after the syncRender call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag === null || onDrag === void 0 ? void 0 : onDrag(event, info);\n };\n var onSessionEnd = function (event, info) {\n return _this.stop(event, info);\n };\n this.panSession = new PanSession(originEvent, {\n onSessionStart: onSessionStart,\n onStart: onStart,\n onMove: onMove,\n onSessionEnd: onSessionEnd,\n }, { transformPagePoint: this.visualElement.getTransformPagePoint() });\n };\n VisualElementDragControls.prototype.stop = function (event, info) {\n var isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n var velocity = info.velocity;\n this.startAnimation(velocity);\n var onDragEnd = this.getProps().onDragEnd;\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, info);\n };\n VisualElementDragControls.prototype.cancel = function () {\n var _a, _b;\n this.isDragging = false;\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = false;\n }\n (_a = this.panSession) === null || _a === void 0 ? void 0 : _a.end();\n this.panSession = undefined;\n var dragPropagation = this.getProps().dragPropagation;\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n (_b = this.visualElement.animationState) === null || _b === void 0 ? void 0 : _b.setActive(AnimationType.Drag, false);\n };\n VisualElementDragControls.prototype.updateAxis = function (axis, _point, offset) {\n var drag = this.getProps().drag;\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n var axisValue = this.getAxisMotionValue(axis);\n var 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 VisualElementDragControls.prototype.resolveConstraints = function () {\n var _this = this;\n var _a = this.getProps(), dragConstraints = _a.dragConstraints, dragElastic = _a.dragElastic;\n var layout = (this.visualElement.projection || {}).layout;\n var 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.actual, 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(function (axis) {\n if (_this.getAxisMotionValue(axis)) {\n _this.constraints[axis] = rebaseAxisConstraints(layout.actual[axis], _this.constraints[axis]);\n }\n });\n }\n };\n VisualElementDragControls.prototype.resolveRefConstraints = function () {\n var _a = this.getProps(), constraints = _a.dragConstraints, onMeasureDragConstraints = _a.onMeasureDragConstraints;\n if (!constraints || !isRefObject(constraints))\n return false;\n var 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 var projection = this.visualElement.projection;\n // TODO\n if (!projection || !projection.layout)\n return false;\n var constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n var measuredConstraints = calcViewportConstraints(projection.layout.actual, 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 var userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n };\n VisualElementDragControls.prototype.startAnimation = function (velocity) {\n var _this = this;\n var _a = this.getProps(), drag = _a.drag, dragMomentum = _a.dragMomentum, dragElastic = _a.dragElastic, dragTransition = _a.dragTransition, dragSnapToOrigin = _a.dragSnapToOrigin, onDragTransitionEnd = _a.onDragTransitionEnd;\n var constraints = this.constraints || {};\n var momentumAnimations = eachAxis(function (axis) {\n var _a;\n if (!shouldDrag(axis, drag, _this.currentDirection)) {\n return;\n }\n var transition = (_a = constraints === null || constraints === void 0 ? void 0 : constraints[axis]) !== null && _a !== void 0 ? _a : {};\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 var bounceStiffness = dragElastic ? 200 : 1000000;\n var bounceDamping = dragElastic ? 40 : 10000000;\n var inertia = __assign(__assign({ type: \"inertia\", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness: bounceStiffness, bounceDamping: bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);\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 VisualElementDragControls.prototype.startAxisValueAnimation = function (axis, transition) {\n var axisValue = this.getAxisMotionValue(axis);\n return startAnimation(axis, axisValue, 0, transition);\n };\n VisualElementDragControls.prototype.stopAnimation = function () {\n var _this = this;\n eachAxis(function (axis) { return _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 VisualElementDragControls.prototype.getAxisMotionValue = function (axis) {\n var _a, _b;\n var dragKey = \"_drag\" + axis.toUpperCase();\n var externalMotionValue = this.visualElement.getProps()[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (_b = (_a = this.visualElement.getProps().initial) === null || _a === void 0 ? void 0 : _a[axis]) !== null && _b !== void 0 ? _b : 0);\n };\n VisualElementDragControls.prototype.snapToCursor = function (point) {\n var _this = this;\n eachAxis(function (axis) {\n var drag = _this.getProps().drag;\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, _this.currentDirection))\n return;\n var projection = _this.visualElement.projection;\n var axisValue = _this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n var _a = projection.layout.actual[axis], min = _a.min, max = _a.max;\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 VisualElementDragControls.prototype.scalePositionWithinConstraints = function () {\n var _this = this;\n var _a;\n var _b = this.getProps(), drag = _b.drag, dragConstraints = _b.dragConstraints;\n var projection = this.visualElement.projection;\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 var boxProgress = { x: 0, y: 0 };\n eachAxis(function (axis) {\n var axisValue = _this.getAxisMotionValue(axis);\n if (axisValue) {\n var 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 var transformTemplate = this.visualElement.getProps().transformTemplate;\n this.visualElement.getInstance().style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n (_a = projection.root) === null || _a === void 0 ? void 0 : _a.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(function (axis) {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n var axisValue = _this.getAxisMotionValue(axis);\n var _a = _this.constraints[axis], min = _a.min, max = _a.max;\n axisValue.set(mix(min, max, boxProgress[axis]));\n });\n };\n VisualElementDragControls.prototype.addListeners = function () {\n var _this = this;\n var _a;\n elementDragControls.set(this.visualElement, this);\n var element = this.visualElement.getInstance();\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n var stopPointerListener = addPointerEvent(element, \"pointerdown\", function (event) {\n var _a = _this.getProps(), drag = _a.drag, _b = _a.dragListener, dragListener = _b === void 0 ? true : _b;\n drag && dragListener && _this.start(event);\n });\n var measureDragConstraints = function () {\n var dragConstraints = _this.getProps().dragConstraints;\n if (isRefObject(dragConstraints)) {\n _this.constraints = _this.resolveRefConstraints();\n }\n };\n var projection = this.visualElement.projection;\n var stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n (_a = projection.root) === null || _a === void 0 ? void 0 : _a.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 var stopResizeListener = addDomEvent(window, \"resize\", function () {\n _this.scalePositionWithinConstraints();\n });\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n projection.addEventListener(\"didUpdate\", (function (_a) {\n var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged;\n if (_this.isDragging && hasLayoutChanged) {\n eachAxis(function (axis) {\n var 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.syncRender();\n }\n }));\n return function () {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n };\n };\n VisualElementDragControls.prototype.getProps = function () {\n var props = this.visualElement.getProps();\n var _a = props.drag, drag = _a === void 0 ? false : _a, _b = props.dragDirectionLock, dragDirectionLock = _b === void 0 ? false : _b, _c = props.dragPropagation, dragPropagation = _c === void 0 ? false : _c, _d = props.dragConstraints, dragConstraints = _d === void 0 ? false : _d, _e = props.dragElastic, dragElastic = _e === void 0 ? defaultElastic : _e, _f = props.dragMomentum, dragMomentum = _f === void 0 ? true : _f;\n return __assign(__assign({}, props), { drag: drag, dragDirectionLock: dragDirectionLock, dragPropagation: dragPropagation, dragConstraints: dragConstraints, dragElastic: dragElastic, dragMomentum: dragMomentum });\n };\n return VisualElementDragControls;\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) {\n if (lockThreshold === void 0) { lockThreshold = 10; }\n var 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 { useEffect } from 'react';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\n\n/**\n * A hook that allows an element to be dragged.\n *\n * @internal\n */\nfunction useDrag(props) {\n var groupDragControls = props.dragControls, visualElement = props.visualElement;\n var dragControls = useConstant(function () { return new VisualElementDragControls(visualElement); });\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n useEffect(function () { return groupDragControls && groupDragControls.subscribe(dragControls); }, [dragControls, groupDragControls]);\n // Apply the event listeners to the element\n useEffect(function () { return dragControls.addListeners(); }, [dragControls]);\n}\n\nexport { useDrag };\n","import { useRef, useContext, useEffect } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { PanSession } from './PanSession.mjs';\n\n/**\n *\n * @param handlers -\n * @param ref -\n *\n * @internalremarks\n * Currently this sets new pan gesture functions every render. The memo route has been explored\n * in the past but ultimately we're still creating new functions every render. An optimisation\n * to explore is creating the pan gestures and loading them into a `ref`.\n *\n * @internal\n */\nfunction usePanGesture(_a) {\n var onPan = _a.onPan, onPanStart = _a.onPanStart, onPanEnd = _a.onPanEnd, onPanSessionStart = _a.onPanSessionStart, visualElement = _a.visualElement;\n var hasPanEvents = onPan || onPanStart || onPanEnd || onPanSessionStart;\n var panSession = useRef(null);\n var transformPagePoint = useContext(MotionConfigContext).transformPagePoint;\n var handlers = {\n onSessionStart: onPanSessionStart,\n onStart: onPanStart,\n onMove: onPan,\n onEnd: function (event, info) {\n panSession.current = null;\n onPanEnd && onPanEnd(event, info);\n },\n };\n useEffect(function () {\n if (panSession.current !== null) {\n panSession.current.updateHandlers(handlers);\n }\n });\n function onPointerDown(event) {\n panSession.current = new PanSession(event, handlers, {\n transformPagePoint: transformPagePoint,\n });\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPanEvents && onPointerDown);\n useUnmountEffect(function () { return panSession.current && panSession.current.end(); });\n}\n\nexport { usePanGesture };\n","import { useDrag } from '../../gestures/drag/use-drag.mjs';\nimport { usePanGesture } from '../../gestures/use-pan-gesture.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar drag = {\n pan: makeRenderlessComponent(usePanGesture),\n drag: makeRenderlessComponent(useDrag),\n};\n\nexport { drag };\n","import { __spreadArray, __read } from 'tslib';\nimport { SubscriptionManager } from '../../utils/subscription-manager.mjs';\n\nvar names = [\n \"LayoutMeasure\",\n \"BeforeLayoutMeasure\",\n \"LayoutUpdate\",\n \"ViewportBoxUpdate\",\n \"Update\",\n \"Render\",\n \"AnimationComplete\",\n \"LayoutAnimationComplete\",\n \"AnimationStart\",\n \"SetAxisTarget\",\n \"Unmount\",\n];\nfunction createLifecycles() {\n var managers = names.map(function () { return new SubscriptionManager(); });\n var propSubscriptions = {};\n var lifecycles = {\n clearAllListeners: function () { return managers.forEach(function (manager) { return manager.clear(); }); },\n updatePropListeners: function (props) {\n names.forEach(function (name) {\n var _a;\n var on = \"on\" + name;\n var propListener = props[on];\n // Unsubscribe existing subscription\n (_a = propSubscriptions[name]) === null || _a === void 0 ? void 0 : _a.call(propSubscriptions);\n // Add new subscription\n if (propListener) {\n propSubscriptions[name] = lifecycles[on](propListener);\n }\n });\n },\n };\n managers.forEach(function (manager, i) {\n lifecycles[\"on\" + names[i]] = function (handler) { return manager.add(handler); };\n lifecycles[\"notify\" + names[i]] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return manager.notify.apply(manager, __spreadArray([], __read(args), false));\n };\n });\n return lifecycles;\n}\n\nexport { createLifecycles };\n","import { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n var _a;\n for (var key in next) {\n var nextValue = next[key];\n var 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 }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping to a new motion value, create a new motion value\n * from that\n */\n element.addValue(key, motionValue(nextValue));\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 var 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 element.addValue(key, motionValue((_a = element.getStaticValue(key)) !== null && _a !== void 0 ? _a : nextValue));\n }\n }\n }\n // Handle removed values\n for (var key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { __assign, __spreadArray, __read } from 'tslib';\nimport sync, { cancelSync } from 'framesync';\nimport { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { variantPriorityOrder } from './utils/animation-state.mjs';\nimport { createLifecycles } from './utils/lifecycles.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel } from './utils/variants.mjs';\n\nvar visualElement = function (_a) {\n var _b = _a.treeType, treeType = _b === void 0 ? \"\" : _b, build = _a.build, getBaseTarget = _a.getBaseTarget, makeTargetAnimatable = _a.makeTargetAnimatable, measureViewportBox = _a.measureViewportBox, renderInstance = _a.render, readValueFromInstance = _a.readValueFromInstance, removeValueFromRenderState = _a.removeValueFromRenderState, sortNodePosition = _a.sortNodePosition, scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps;\n return function (_a, options) {\n var parent = _a.parent, props = _a.props, presenceId = _a.presenceId, blockInitialAnimation = _a.blockInitialAnimation, visualState = _a.visualState, shouldReduceMotion = _a.shouldReduceMotion;\n if (options === void 0) { options = {}; }\n var isMounted = false;\n var latestValues = visualState.latestValues, renderState = visualState.renderState;\n /**\n * The instance of the render-specific node that will be hydrated by the\n * exposed React ref. So for example, this visual element can host a\n * HTMLElement, plain object, or Three.js object. The functions provided\n * in VisualElementConfig allow us to interface with this instance.\n */\n var instance;\n /**\n * Manages the subscriptions for a visual element's lifecycle, for instance\n * onRender\n */\n var lifecycles = createLifecycles();\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 var values = new Map();\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n var 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 var prevMotionValues = {};\n /**\n * When values are removed from all animation props we need to search\n * for a fallback value to animate to. These values are tracked in baseTarget.\n */\n var baseTarget = __assign({}, latestValues);\n // Internal methods ========================\n /**\n * On mount, this will be hydrated with a callback to disconnect\n * this visual element from its parent on unmount.\n */\n var removeFromVariantTree;\n /**\n * Render the element with the latest styles outside of the React\n * render lifecycle\n */\n function render() {\n if (!instance || !isMounted)\n return;\n triggerBuild();\n renderInstance(instance, renderState, props.style, element.projection);\n }\n function triggerBuild() {\n build(element, renderState, latestValues, options, props);\n }\n function update() {\n lifecycles.notifyUpdate(latestValues);\n }\n /**\n *\n */\n function bindToMotionValue(key, value) {\n var removeOnChange = value.onChange(function (latestValue) {\n latestValues[key] = latestValue;\n props.onUpdate && sync.update(update, false, true);\n });\n var removeOnRenderRequest = value.onRenderRequest(element.scheduleRender);\n valueSubscriptions.set(key, function () {\n removeOnChange();\n removeOnRenderRequest();\n });\n }\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 var initialMotionValues = scrapeMotionValuesFromProps(props);\n for (var key in initialMotionValues) {\n var value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n var element = __assign(__assign({ treeType: treeType, \n /**\n * This is a mirror of the internal instance prop, which keeps\n * VisualElement type-compatible with React's RefObject.\n */\n current: null, \n /**\n * The depth of this visual element within the visual element tree.\n */\n depth: parent ? parent.depth + 1 : 0, parent: parent, children: new Set(), \n /**\n *\n */\n presenceId: presenceId, shouldReduceMotion: shouldReduceMotion, \n /**\n * If this component is part of the variant tree, it should track\n * any children that are also part of the tree. This is essentially\n * a shadow tree to simplify logic around how to stagger over children.\n */\n variantChildren: isVariantNode ? new Set() : undefined, \n /**\n * Whether this instance is visible. This can be changed imperatively\n * by the projection tree, is analogous to CSS's visibility in that\n * hidden elements should take up layout, and needs enacting by the configured\n * render function.\n */\n isVisible: undefined, \n /**\n * Normally, if a component is controlled by a parent's variants, it can\n * rely on that ancestor to trigger animations further down the tree.\n * However, if a component is created after its parent is mounted, the parent\n * won't trigger that mount animation so the child needs to.\n *\n * TODO: This might be better replaced with a method isParentMounted\n */\n manuallyAnimateOnMount: Boolean(parent === null || parent === void 0 ? void 0 : parent.isMounted()), \n /**\n * This can be set by AnimatePresence to force components that mount\n * at the same time as it to mount as if they have initial={false} set.\n */\n blockInitialAnimation: blockInitialAnimation, \n /**\n * Determine whether this component has mounted yet. This is mostly used\n * by variant children to determine whether they need to trigger their\n * own animations on mount.\n */\n isMounted: function () { return Boolean(instance); }, mount: function (newInstance) {\n isMounted = true;\n instance = element.current = newInstance;\n if (element.projection) {\n element.projection.mount(newInstance);\n }\n if (isVariantNode && parent && !isControllingVariants) {\n removeFromVariantTree = parent === null || parent === void 0 ? void 0 : parent.addVariantChild(element);\n }\n values.forEach(function (value, key) { return bindToMotionValue(key, value); });\n parent === null || parent === void 0 ? void 0 : parent.children.add(element);\n element.setProps(props);\n }, \n /**\n *\n */\n unmount: function () {\n var _a;\n (_a = element.projection) === null || _a === void 0 ? void 0 : _a.unmount();\n cancelSync.update(update);\n cancelSync.render(render);\n valueSubscriptions.forEach(function (remove) { return remove(); });\n removeFromVariantTree === null || removeFromVariantTree === void 0 ? void 0 : removeFromVariantTree();\n parent === null || parent === void 0 ? void 0 : parent.children.delete(element);\n lifecycles.clearAllListeners();\n instance = undefined;\n isMounted = false;\n }, \n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild: function (child) {\n var _a;\n var closestVariantNode = element.getClosestVariantNode();\n if (closestVariantNode) {\n (_a = closestVariantNode.variantChildren) === null || _a === void 0 ? void 0 : _a.add(child);\n return function () {\n return closestVariantNode.variantChildren.delete(child);\n };\n }\n }, sortNodePosition: function (other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!sortNodePosition || treeType !== other.treeType)\n return 0;\n return sortNodePosition(element.getInstance(), other.getInstance());\n }, \n /**\n * Returns the closest variant node in the tree starting from\n * this visual element.\n */\n getClosestVariantNode: function () {\n return isVariantNode ? element : parent === null || parent === void 0 ? void 0 : parent.getClosestVariantNode();\n }, \n /**\n * Expose the latest layoutId prop.\n */\n getLayoutId: function () { return props.layoutId; }, \n /**\n * Returns the current instance.\n */\n getInstance: function () { return instance; }, \n /**\n * Get/set the latest static values.\n */\n getStaticValue: function (key) { return latestValues[key]; }, setStaticValue: function (key, value) { return (latestValues[key] = value); }, \n /**\n * Returns the latest motion value state. Currently only used to take\n * a snapshot of the visual element - perhaps this can return the whole\n * visual state\n */\n getLatestValues: function () { return latestValues; }, \n /**\n * Set the visiblity of the visual element. If it's changed, schedule\n * a render to reflect these changes.\n */\n setVisibility: function (visibility) {\n if (element.isVisible === visibility)\n return;\n element.isVisible = visibility;\n element.scheduleRender();\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: function (target, canMutate) {\n if (canMutate === void 0) { canMutate = true; }\n return makeTargetAnimatable(element, target, props, canMutate);\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: function () {\n return measureViewportBox(instance, props);\n }, \n // Motion values ========================\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue: function (key, value) {\n // Remove existing value if it exists\n if (element.hasValue(key))\n element.removeValue(key);\n values.set(key, value);\n latestValues[key] = value.get();\n bindToMotionValue(key, value);\n }, \n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue: function (key) {\n var _a;\n values.delete(key);\n (_a = valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n valueSubscriptions.delete(key);\n delete latestValues[key];\n removeValueFromRenderState(key, renderState);\n }, \n /**\n * Check whether we have a motion value for this key\n */\n hasValue: function (key) { return values.has(key); }, \n /**\n * Get a motion value for this key. If called with a default\n * value, we'll create one if none exists.\n */\n getValue: function (key, defaultValue) {\n var value = values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue);\n element.addValue(key, value);\n }\n return value;\n }, \n /**\n * Iterate over our motion values.\n */\n forEachValue: function (callback) { return values.forEach(callback); }, \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: function (key) {\n var _a;\n return (_a = latestValues[key]) !== null && _a !== void 0 ? _a : readValueFromInstance(instance, key, 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: function (key, value) {\n baseTarget[key] = value;\n }, \n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget: function (key) {\n if (getBaseTarget) {\n var target = getBaseTarget(props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n }\n return baseTarget[key];\n } }, lifecycles), { \n /**\n * Build the renderer state based on the latest visual state.\n */\n build: function () {\n triggerBuild();\n return renderState;\n }, \n /**\n * Schedule a render on the next animation frame.\n */\n scheduleRender: function () {\n sync.render(render, false, true);\n }, \n /**\n * Synchronously fire render. It's prefered that we batch renders but\n * in many circumstances, like layout measurement, we need to run this\n * synchronously. However in those instances other measures should be taken\n * to batch reads/writes.\n */\n syncRender: render, \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 setProps: function (newProps) {\n if (newProps.transformTemplate || props.transformTemplate) {\n element.scheduleRender();\n }\n props = newProps;\n lifecycles.updatePropListeners(newProps);\n prevMotionValues = updateMotionValuesFromProps(element, scrapeMotionValuesFromProps(props), prevMotionValues);\n }, getProps: function () { return props; }, \n // Variants ==============================\n /**\n * Returns the variant definition with a given name.\n */\n getVariant: function (name) { var _a; return (_a = props.variants) === null || _a === void 0 ? void 0 : _a[name]; }, \n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition: function () { return props.transition; }, getTransformPagePoint: function () {\n return props.transformPagePoint;\n }, \n /**\n * Used by child variant nodes to get the closest ancestor variant props.\n */\n getVariantContext: function (startAtParent) {\n if (startAtParent === void 0) { startAtParent = false; }\n if (startAtParent)\n return parent === null || parent === void 0 ? void 0 : parent.getVariantContext();\n if (!isControllingVariants) {\n var context_1 = (parent === null || parent === void 0 ? void 0 : parent.getVariantContext()) || {};\n if (props.initial !== undefined) {\n context_1.initial = props.initial;\n }\n return context_1;\n }\n var context = {};\n for (var i = 0; i < numVariantProps; i++) {\n var name_1 = variantProps[i];\n var prop = props[name_1];\n if (isVariantLabel(prop) || prop === false) {\n context[name_1] = prop;\n }\n }\n return context;\n } });\n return element;\n };\n};\nvar variantProps = __spreadArray([\"initial\"], __read(variantPriorityOrder), false);\nvar numVariantProps = variantProps.length;\n\nexport { visualElement };\n","import { __rest, __assign, __read } from 'tslib';\nimport { invariant } from 'hey-listen';\n\nfunction isCSSVariable(value) {\n return typeof value === \"string\" && value.startsWith(\"var(--\");\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 */\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n var match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n var _a = __read(match, 3), token = _a[1], fallback = _a[2];\n return [token, fallback];\n}\nvar maxDepth = 4;\nfunction getVariableValue(current, element, depth) {\n if (depth === void 0) { depth = 1; }\n invariant(depth <= maxDepth, \"Max CSS variable fallback depth detected in property \\\"\".concat(current, \"\\\". This may indicate a circular fallback dependency.\"));\n var _a = __read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n var resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n return resolved.trim();\n }\n else if (isCSSVariable(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, _a, transitionEnd) {\n var _b;\n var target = __rest(_a, []);\n var element = visualElement.getInstance();\n if (!(element instanceof Element))\n return { target: target, transitionEnd: 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 = __assign({}, transitionEnd);\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.forEachValue(function (value) {\n var current = value.get();\n if (!isCSSVariable(current))\n return;\n var 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 (var key in target) {\n var current = target[key];\n if (!isCSSVariable(current))\n continue;\n var resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\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)\n (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);\n }\n return { target: target, transitionEnd: transitionEnd };\n}\n\nexport { cssVariableRegex, parseCSSVariable, resolveCSSVariables };\n","import { __assign, __read } from 'tslib';\nimport { number, px } from 'style-value-types';\nimport { isKeyframesTarget } from '../../../animation/utils/is-keyframes-target.mjs';\nimport { invariant } from 'hey-listen';\nimport { transformProps } from '../../html/utils/transform.mjs';\nimport { findDimensionValueType } from '../value-types/dimensions.mjs';\n\nvar positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n]);\nvar isPositionalKey = function (key) { return positionalKeys.has(key); };\nvar hasPositionalKey = function (target) {\n return Object.keys(target).some(isPositionalKey);\n};\nvar setAndResetVelocity = function (value, to) {\n // Looks odd but setting it twice doesn't render, it'll just\n // set both prev and current to the latest value\n value.set(to, false);\n value.set(to);\n};\nvar isNumOrPxType = function (v) {\n return v === number || v === px;\n};\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n BoundingBoxDimension[\"width\"] = \"width\";\n BoundingBoxDimension[\"height\"] = \"height\";\n BoundingBoxDimension[\"left\"] = \"left\";\n BoundingBoxDimension[\"right\"] = \"right\";\n BoundingBoxDimension[\"top\"] = \"top\";\n BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nvar getPosFromMatrix = function (matrix, pos) {\n return parseFloat(matrix.split(\", \")[pos]);\n};\nvar getTranslateFromMatrix = function (pos2, pos3) {\n return function (_bbox, _a) {\n var transform = _a.transform;\n if (transform === \"none\" || !transform)\n return 0;\n var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n var matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n };\n};\nvar transformKeys = new Set([\"x\", \"y\", \"z\"]);\nvar nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });\nfunction removeNonTranslationalTransform(visualElement) {\n var removedTransforms = [];\n nonTranslationalTransformKeys.forEach(function (key) {\n var 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.syncRender();\n return removedTransforms;\n}\nvar positionalValues = {\n // Dimensions\n width: function (_a, _b) {\n var x = _a.x;\n var _c = _b.paddingLeft, paddingLeft = _c === void 0 ? \"0\" : _c, _d = _b.paddingRight, paddingRight = _d === void 0 ? \"0\" : _d;\n return x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight);\n },\n height: function (_a, _b) {\n var y = _a.y;\n var _c = _b.paddingTop, paddingTop = _c === void 0 ? \"0\" : _c, _d = _b.paddingBottom, paddingBottom = _d === void 0 ? \"0\" : _d;\n return y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom);\n },\n top: function (_bbox, _a) {\n var top = _a.top;\n return parseFloat(top);\n },\n left: function (_bbox, _a) {\n var left = _a.left;\n return parseFloat(left);\n },\n bottom: function (_a, _b) {\n var y = _a.y;\n var top = _b.top;\n return parseFloat(top) + (y.max - y.min);\n },\n right: function (_a, _b) {\n var x = _a.x;\n var left = _b.left;\n return parseFloat(left) + (x.max - x.min);\n },\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\nvar convertChangedValueTypes = function (target, visualElement, changedKeys) {\n var originBbox = visualElement.measureViewportBox();\n var element = visualElement.getInstance();\n var elementComputedStyle = getComputedStyle(element);\n var display = elementComputedStyle.display;\n var 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(function (key) {\n origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n });\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.syncRender();\n var targetBbox = visualElement.measureViewportBox();\n changedKeys.forEach(function (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 var value = visualElement.getValue(key);\n setAndResetVelocity(value, origin[key]);\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nvar checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {\n if (origin === void 0) { origin = {}; }\n if (transitionEnd === void 0) { transitionEnd = {}; }\n target = __assign({}, target);\n transitionEnd = __assign({}, transitionEnd);\n var 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 var removedTransformValues = [];\n var hasAttemptedToRemoveTransformValues = false;\n var changedValueTypeKeys = [];\n targetPositionalKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n var from = origin[key];\n var fromType = findDimensionValueType(from);\n var to = target[key];\n var 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 var numKeyframes = to.length;\n var fromIndex = to[0] === null ? 1 : 0;\n from = to[fromIndex];\n fromType = findDimensionValueType(from);\n for (var i = fromIndex; i < numKeyframes; i++) {\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 var 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 setAndResetVelocity(value, to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.syncRender();\n return { target: convertedTarget, transitionEnd: transitionEnd };\n }\n else {\n return { target: target, transitionEnd: 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: target, transitionEnd: transitionEnd };\n}\n\nexport { BoundingBoxDimension, 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 */\nvar parseDomVariant = function (visualElement, target, origin, transitionEnd) {\n var 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","import { __rest, __assign } from 'tslib';\nimport { visualElement } from '../index.mjs';\nimport { getOrigin, checkTargetForNewValues } from '../utils/setters.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariable } from '../dom/utils/is-css-variable.mjs';\nimport { parseDomVariant } from '../dom/utils/parse-dom-variant.mjs';\nimport { isTransformProp } 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';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nvar htmlConfig = {\n treeType: \"dom\",\n readValueFromInstance: function (domElement, key) {\n if (isTransformProp(key)) {\n var defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n var computedStyle = getComputedStyle(domElement);\n return ((isCSSVariable(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0);\n }\n },\n sortNodePosition: function (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 getBaseTarget: function (props, key) {\n var _a;\n return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];\n },\n measureViewportBox: function (element, _a) {\n var transformPagePoint = _a.transformPagePoint;\n return measureViewportBox(element, transformPagePoint);\n },\n /**\n * Reset the transform on the current Element. This is called as part\n * of a batched process across the entire layout tree. To remove this write\n * cycle it'd be interesting to see if it's possible to \"undo\" all the current\n * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms\n * works\n */\n resetTransform: function (element, domElement, props) {\n var transformTemplate = props.transformTemplate;\n domElement.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n // Ensure that whatever happens next, we restore our transform on the next frame\n element.scheduleRender();\n },\n restoreTransform: function (instance, mutableState) {\n instance.style.transform = mutableState.style.transform;\n },\n removeValueFromRenderState: function (key, _a) {\n var vars = _a.vars, style = _a.style;\n delete vars[key];\n delete style[key];\n },\n /**\n * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`\n * can be animated by Motion.\n */\n makeTargetAnimatable: function (element, _a, _b, isMounted) {\n var transformValues = _b.transformValues;\n if (isMounted === void 0) { isMounted = true; }\n var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, [\"transition\", \"transitionEnd\"]);\n var origin = getOrigin(target, transition || {}, element);\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(element, target, origin);\n var parsed = parseDomVariant(element, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return __assign({ transition: transition, transitionEnd: transitionEnd }, target);\n },\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n build: function (element, renderState, latestValues, options, props) {\n if (element.isVisible !== undefined) {\n renderState.style.visibility = element.isVisible\n ? \"visible\"\n : \"hidden\";\n }\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n },\n render: renderHTML,\n};\nvar htmlVisualElement = visualElement(htmlConfig);\n\nexport { getComputedStyle, htmlConfig, htmlVisualElement };\n","import { __assign } from 'tslib';\nimport { visualElement } from '../index.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { htmlConfig } from '../html/visual-element.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 { isTransformProp } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\n\nvar svgVisualElement = visualElement(__assign(__assign({}, htmlConfig), { getBaseTarget: function (props, key) {\n return props[key];\n }, readValueFromInstance: function (domElement, key) {\n var _a;\n if (isTransformProp(key)) {\n return ((_a = getDefaultValueType(key)) === null || _a === void 0 ? void 0 : _a.default) || 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return domElement.getAttribute(key);\n }, scrapeMotionValuesFromProps: scrapeMotionValuesFromProps, build: function (_element, renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, props.transformTemplate);\n }, render: renderSVG }));\n\nexport { svgVisualElement };\n","import { htmlVisualElement } from '../html/visual-element.mjs';\nimport { svgVisualElement } from '../svg/visual-element.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nvar createDomVisualElement = function (Component, options) {\n return isSVGComponent(Component)\n ? svgVisualElement(options, { enableHardwareAcceleration: false })\n : htmlVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nexport { createDomVisualElement };\n","import { px } from 'style-value-types';\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 */\nvar correctBorderRadius = {\n correct: function (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 var x = pixelsToPercent(latest, node.target.x);\n var y = pixelsToPercent(latest, node.target.y);\n return \"\".concat(x, \"% \").concat(y, \"%\");\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { mix } from 'popmotion';\nimport { complex } from 'style-value-types';\nimport { cssVariableRegex } from '../../render/dom/utils/css-variables-conversion.mjs';\n\nvar varToken = \"_$css\";\nvar correctBoxShadow = {\n correct: function (latest, _a) {\n var treeScale = _a.treeScale, projectionDelta = _a.projectionDelta;\n var original = latest;\n /**\n * We need to first strip and store CSS variables from the string.\n */\n var containsCSSVariables = latest.includes(\"var(\");\n var cssVariables = [];\n if (containsCSSVariables) {\n latest = latest.replace(cssVariableRegex, function (match) {\n cssVariables.push(match);\n return varToken;\n });\n }\n var shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n var template = complex.createTransformer(latest);\n var offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n var xScale = projectionDelta.x.scale * treeScale.x;\n var 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 var 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 var output = template(shadow);\n if (containsCSSVariables) {\n var i_1 = 0;\n output = output.replace(varToken, function () {\n var cssVariable = cssVariables[i_1];\n i_1++;\n return cssVariable;\n });\n }\n return output;\n },\n};\n\nexport { correctBoxShadow };\n","import { __extends, __assign, __read } from 'tslib';\nimport sync from 'framesync';\nimport 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/create-projection-node.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';\n\nvar MeasureLayoutWithContext = /** @class */ (function (_super) {\n __extends(MeasureLayoutWithContext, _super);\n function MeasureLayoutWithContext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\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 MeasureLayoutWithContext.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, visualElement = _a.visualElement, layoutGroup = _a.layoutGroup, switchLayoutGroup = _a.switchLayoutGroup, layoutId = _a.layoutId;\n var projection = visualElement.projection;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)\n layoutGroup.group.add(projection);\n if ((switchLayoutGroup === null || switchLayoutGroup === void 0 ? void 0 : switchLayoutGroup.register) && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", function () {\n _this.safeToRemove();\n });\n projection.setOptions(__assign(__assign({}, projection.options), { onExitComplete: function () { return _this.safeToRemove(); } }));\n }\n globalProjectionState.hasEverUpdated = true;\n };\n MeasureLayoutWithContext.prototype.getSnapshotBeforeUpdate = function (prevProps) {\n var _this = this;\n var _a = this.props, layoutDependency = _a.layoutDependency, visualElement = _a.visualElement, drag = _a.drag, isPresent = _a.isPresent;\n var 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 sync.postRender(function () {\n var _a;\n if (!((_a = projection.getStack()) === null || _a === void 0 ? void 0 : _a.members.length)) {\n _this.safeToRemove();\n }\n });\n }\n }\n return null;\n };\n MeasureLayoutWithContext.prototype.componentDidUpdate = function () {\n var projection = this.props.visualElement.projection;\n if (projection) {\n projection.root.didUpdate();\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n }\n };\n MeasureLayoutWithContext.prototype.componentWillUnmount = function () {\n var _a = this.props, visualElement = _a.visualElement, layoutGroup = _a.layoutGroup, promoteContext = _a.switchLayoutGroup;\n var projection = visualElement.projection;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext === null || promoteContext === void 0 ? void 0 : promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n };\n MeasureLayoutWithContext.prototype.safeToRemove = function () {\n var safeToRemove = this.props.safeToRemove;\n safeToRemove === null || safeToRemove === void 0 ? void 0 : safeToRemove();\n };\n MeasureLayoutWithContext.prototype.render = function () {\n return null;\n };\n return MeasureLayoutWithContext;\n}(React__default.Component));\nfunction MeasureLayout(props) {\n var _a = __read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];\n var layoutGroup = useContext(LayoutGroupContext);\n return (React__default.createElement(MeasureLayoutWithContext, __assign({}, props, { layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove })));\n}\nvar defaultScaleCorrectors = {\n borderRadius: __assign(__assign({}, correctBorderRadius), { applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ] }),\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","import { MeasureLayout } from './MeasureLayout.mjs';\n\nvar layoutFeatures = {\n measureLayout: MeasureLayout,\n};\n\nexport { layoutFeatures };\n","import { createProjectionNode } from './create-projection-node.mjs';\n\nvar DocumentProjectionNode = createProjectionNode({\n attachResizeListener: function (ref, notify) {\n ref.addEventListener(\"resize\", notify, { passive: true });\n return function () { return ref.removeEventListener(\"resize\", notify); };\n },\n measureScroll: function () { return ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }); },\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nvar rootProjectionNode = {\n current: undefined,\n};\nvar HTMLProjectionNode = createProjectionNode({\n measureScroll: function (instance) { return ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }); },\n defaultParent: function () {\n if (!rootProjectionNode.current) {\n var documentNode = new DocumentProjectionNode(0, {});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: function (instance, value) {\n instance.style.transform = value !== null && value !== void 0 ? value : \"none\";\n },\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { __assign } from 'tslib';\nimport { 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 { layoutFeatures } from '../../motion/features/layout/index.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nvar featureBundle = __assign(__assign(__assign(__assign({}, animations), gestureAnimations), drag), layoutFeatures);\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 */\nvar motion = /*@__PURE__*/ createMotionProxy(function (Component, config) {\n return createDomMotionConfig(Component, config, featureBundle, createDomVisualElement, HTMLProjectionNode);\n});\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 }, featureBundle, createDomVisualElement, HTMLProjectionNode));\n}\n\nexport { createDomMotionComponent, motion };\n","import { __spreadArray, __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { stopAnimation, animateVisualElement } from '../render/utils/animation.mjs';\nimport { setValues } from '../render/utils/setters.mjs';\n\n/**\n * @public\n */\nfunction animationControls() {\n /**\n * Track whether the host component has mounted.\n */\n var hasMounted = false;\n /**\n * Pending animations that are started before a component is mounted.\n * TODO: Remove this as animations should only run in effects\n */\n var pendingAnimations = [];\n /**\n * A collection of linked component animation controls.\n */\n var subscribers = new Set();\n var controls = {\n subscribe: function (visualElement) {\n subscribers.add(visualElement);\n return function () { return void subscribers.delete(visualElement); };\n },\n start: function (definition, transitionOverride) {\n /**\n * TODO: We only perform this hasMounted check because in Framer we used to\n * encourage the ability to start an animation within the render phase. This\n * isn't behaviour concurrent-safe so when we make Framer concurrent-safe\n * we can ditch this.\n */\n if (hasMounted) {\n var animations_1 = [];\n subscribers.forEach(function (visualElement) {\n animations_1.push(animateVisualElement(visualElement, definition, {\n transitionOverride: transitionOverride,\n }));\n });\n return Promise.all(animations_1);\n }\n else {\n return new Promise(function (resolve) {\n pendingAnimations.push({\n animation: [definition, transitionOverride],\n resolve: resolve,\n });\n });\n }\n },\n set: function (definition) {\n invariant(hasMounted, \"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook.\");\n return subscribers.forEach(function (visualElement) {\n setValues(visualElement, definition);\n });\n },\n stop: function () {\n subscribers.forEach(function (visualElement) {\n stopAnimation(visualElement);\n });\n },\n mount: function () {\n hasMounted = true;\n pendingAnimations.forEach(function (_a) {\n var animation = _a.animation, resolve = _a.resolve;\n controls.start.apply(controls, __spreadArray([], __read(animation), false)).then(resolve);\n });\n return function () {\n hasMounted = false;\n controls.stop();\n };\n },\n };\n return controls;\n}\n\nexport { animationControls };\n","import { animationControls } from './animation-controls.mjs';\nimport { useEffect } from 'react';\nimport { useConstant } from '../utils/use-constant.mjs';\n\n/**\n * Creates `AnimationControls`, which can be used to manually start, stop\n * and sequence animations on one or more components.\n *\n * The returned `AnimationControls` should be passed to the `animate` property\n * of the components you want to animate.\n *\n * These components can then be animated with the `start` method.\n *\n * ```jsx\n * import * as React from 'react'\n * import { motion, useAnimation } from 'framer-motion'\n *\n * export function MyComponent(props) {\n * const controls = useAnimation()\n *\n * controls.start({\n * x: 100,\n * transition: { duration: 0.5 },\n * })\n *\n * return <motion.div animate={controls} />\n * }\n * ```\n *\n * @returns Animation controller with `start` and `stop` methods\n *\n * @public\n */\nfunction useAnimation() {\n var controls = useConstant(animationControls);\n useEffect(controls.mount, []);\n return controls;\n}\n\nexport { useAnimation };\n","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\n\nconst PlaceholderBase = styled.div<{ hide: boolean }>`\n width: 100%;\n background: rgba(161, 168, 194, 0.18);\n height: 80px;\n padding: 8px;\n visibility: ${({ hide }) => (hide === true ? 'hidden' : 'initial')};\n`\n\ntype Props = { hide?: boolean }\n\nexport default forwardRef(function Placeholder(\n { hide = false, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <PlaceholderBase {...restOfProps} hide={hide} ref={ref}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </PlaceholderBase>\n )\n})\n","import { gql } from '@apollo/client'\n\nexport const SWATCHES_BY_ID = gql`\n query SwatchesById($ids: [ID!]!) {\n swatches(ids: $ids) {\n id\n hue\n saturation\n lightness\n }\n }\n`\n\nexport const FILE_BY_ID = gql`\n query FileById($id: ID!) {\n file(id: $id) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const FILES_BY_ID = gql`\n query FilesById($ids: [ID!]!) {\n files(ids: $ids) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const PAGE_PATHNAMES_BY_ID = gql`\n query PagePathnamesById($ids: [ID!]!) {\n pagePathnamesById(ids: $ids) {\n id\n pathname\n }\n }\n`\n\nexport const TYPOGRAPHY_FRAGMENT = gql`\n fragment Typography on Typography {\n id\n name\n style {\n deviceId\n value {\n fontFamily\n fontSize {\n value\n unit\n }\n color {\n swatchId\n alpha\n }\n lineHeight\n letterSpacing\n fontWeight\n textAlign\n uppercase\n underline\n strikethrough\n italic\n }\n }\n }\n`\n\nexport const TYPOGRAPHIES_BY_ID = gql`\n query TypographiesById($ids: [ID!]!) {\n typographies(ids: $ids) {\n ...Typography\n }\n }\n\n ${TYPOGRAPHY_FRAGMENT}\n`\n","export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n","import { useQuery } from '@apollo/client'\nimport { useMemo } from 'react'\n\nimport { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { FILES_BY_ID, SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { BackgroundsValue as ResponsiveBackgroundsValue } from '../../prop-controllers/descriptors'\n\ntype BackgroundColorData = Color\n\ntype BackgroundGradientStopData = {\n id: string\n location: number\n color: Color | null | undefined\n}\n\ntype BackgroundGradientData = {\n angle: number\n isRadial: boolean\n stops: Array<BackgroundGradientStopData>\n}\n\ntype BackgroundImageData = {\n publicUrl?: string\n dimensions: { width: number; height: number } | null\n position: {\n x: number\n y: number\n }\n size: 'cover' | 'contain' | 'auto'\n repeat: 'no-repeat' | 'repeat-x' | 'repeat-y' | 'repeat'\n opacity?: number\n parallax?: number\n}\n\ntype BackgroundVideoData = {\n url: string\n maskColor: Color | null | undefined\n aspectRatio: 'wide' | 'standard'\n opacity: number\n zoom: number\n parallax: number\n}\n\ntype BackgroundData =\n | { id: string; type: 'color'; payload: BackgroundColorData | null | undefined }\n | { id: string; type: 'image'; payload: BackgroundImageData | null | undefined }\n | { id: string; type: 'gradient'; payload: BackgroundGradientData | null | undefined }\n | { id: string; type: 'video'; payload: BackgroundVideoData | null | undefined }\n\ntype BackgroundsData = Array<BackgroundData>\n\nexport type BackgroundsPropControllerData = ResponsiveValue<BackgroundsData>\n\nexport function useBackgrounds(\n value: ResponsiveBackgroundsValue | null | undefined,\n): BackgroundsPropControllerData | null | undefined {\n const fileIds =\n value == null\n ? []\n : value\n .map(({ value: backgrounds }) =>\n backgrounds\n .map(background =>\n background.type === 'image' && background.payload != null\n ? background.payload.imageId\n : null,\n )\n .filter(isNonNullable)\n .reduce((a, b) => a.concat(b), [] as string[]),\n )\n .reduce((a, b) => a.concat(b), [])\n const swatchIds =\n value == null\n ? []\n : value\n .map(({ value: backgrounds }) =>\n backgrounds\n .map(background => {\n if (background.type === 'color' && background.payload != null) {\n return [background.payload.swatchId]\n }\n\n if (background.type === 'gradient' && background.payload != null) {\n return background.payload.stops\n .map(stop => stop.color && stop.color.swatchId)\n .filter(isNonNullable)\n }\n\n if (background.type === 'video' && background.payload != null) {\n return [background.payload.maskColor && background.payload.maskColor.swatchId]\n }\n\n return null\n })\n .filter(isNonNullable)\n .reduce((a, b) => a.concat(b), []),\n )\n .reduce((a, b) => a.concat(b), [])\n .filter(isNonNullable)\n const skip = value == null\n const filesResult = useQuery(FILES_BY_ID, {\n skip: skip || fileIds.length === 0,\n variables: { ids: fileIds },\n })\n const swatchesResult = useQuery(SWATCHES_BY_ID, {\n skip: skip || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n return useMemo(() => {\n const { data: filesData = {} } = filesResult\n const { data: swatchesData = {} } = swatchesResult\n\n if (value == null || filesResult.error != null || swatchesResult.error != null) {\n return null\n }\n\n const { files = [] } = filesData\n const { swatches = [] } = swatchesData\n\n return value.map(({ value: backgrounds, ...restOfValue }) => ({\n ...restOfValue,\n value: backgrounds\n .map(bg => {\n if (bg.type === 'image' && bg.payload != null && bg.payload.imageId != null) {\n const { imageId, ...restOfPayload } = bg.payload\n const file = files.find((f: any) => f && f.id === imageId)\n\n return (\n file && {\n id: bg.id,\n type: 'image',\n payload: {\n ...restOfPayload,\n publicUrl: file.publicUrl,\n dimensions: file.dimensions,\n },\n }\n )\n }\n\n if (bg.type === 'color' && bg.payload != null) {\n const { swatchId, alpha } = bg.payload\n const swatch = swatches.find((s: any) => s && s.id === swatchId)\n\n return { id: bg.id, type: 'color', payload: { swatch, alpha } }\n }\n\n if (bg.type === 'gradient' && bg.payload != null && bg.payload.stops.length > 0) {\n return {\n id: bg.id,\n type: 'gradient',\n payload: {\n angle: bg.payload.angle,\n isRadial: bg.payload.isRadial,\n stops: bg.payload.stops.map(({ color, ...restOfStop }) => ({\n ...restOfStop,\n color: color && {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n })),\n },\n }\n }\n\n if (bg.type === 'video' && bg.payload != null) {\n const { maskColor, ...restOfPayload } = bg.payload\n const swatch = maskColor && swatches.find((s: any) => s && s.id === maskColor.swatchId)\n\n return {\n id: bg.id,\n type: 'video',\n payload: {\n ...restOfPayload,\n maskColor: swatch && maskColor && { swatch, alpha: maskColor.alpha },\n },\n }\n }\n\n return null\n })\n .filter(Boolean),\n }))\n }, [filesResult, swatchesResult, value])\n}\n","import { BorderStyleProperty } from 'csstype'\nimport { useQuery } from '@apollo/client'\n\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { BorderValue as ResponsiveBorderValue } from '../../prop-controllers/descriptors'\n\nfunction mapSideColor(swatches: any, { color, ...restOfSide }: any) {\n return {\n ...restOfSide,\n color: color && {\n alpha: color.alpha,\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n },\n }\n}\n\nexport type BorderSide = {\n width: number | null | undefined\n style: BorderStyleProperty\n color: Color | null | undefined\n}\n\ntype BorderData = {\n borderTop: BorderSide | null | undefined\n borderRight: BorderSide | null | undefined\n borderBottom: BorderSide | null | undefined\n borderLeft: BorderSide | null | undefined\n}\n\nexport type BorderPropControllerData = ResponsiveValue<BorderData>\n\nexport function useBorder(\n value: ResponsiveBorderValue | null | undefined,\n): BorderPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: { borderTop, borderLeft, borderBottom, borderRight } }) => [\n borderTop && borderTop.color && borderTop.color.swatchId,\n borderBottom && borderBottom.color && borderBottom.color.swatchId,\n borderLeft && borderLeft.color && borderLeft.color.swatchId,\n borderRight && borderRight.color && borderRight.color.swatchId,\n ])\n .reduce((a, b) => a.concat(b))\n .filter(isNonNullable),\n ),\n ),\n ]\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: { borderTop, borderBottom, borderLeft, borderRight }, ...rest }) => ({\n ...rest,\n value: {\n borderTop: borderTop && mapSideColor(swatches, borderTop),\n borderBottom: borderBottom && mapSideColor(swatches, borderBottom),\n borderLeft: borderLeft && mapSideColor(swatches, borderLeft),\n borderRight: borderRight && mapSideColor(swatches, borderRight),\n },\n }))\n}\n","import { useQuery } from '@apollo/client'\n\nimport { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ResponsiveValue } from '../../prop-controllers'\nimport type { ShadowsValue as ResponsiveShadowsValue } from '../../prop-controllers/descriptors'\n\ntype ShadowData = {\n id: string\n payload: {\n inset: boolean\n offsetX: number\n offsetY: number\n blurRadius: number\n spreadRadius: number\n color: Color | null | undefined\n }\n}\n\nconst ShadowDefaultValue = {\n inset: false,\n offsetX: 0,\n offsetY: 2,\n blurRadius: 4,\n spreadRadius: 0,\n color: null,\n} as const\n\nexport type BoxShadowData = Array<ShadowData>\n\nexport type BoxShadowPropControllerData = ResponsiveValue<BoxShadowData>\n\nexport function useBoxShadow(\n value: ResponsiveShadowsValue | null | undefined,\n): BoxShadowPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: shadows }) =>\n shadows.map(({ payload: { color } }) => color && color.swatchId),\n )\n .reduce((a, b) => a.concat(b), [])\n .filter(isNonNullable),\n ),\n ),\n ]\n\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: shadows, ...restOfValue }) => ({\n ...restOfValue,\n value: shadows.map(\n ({\n payload: { color, inset, offsetX, offsetY, blurRadius, spreadRadius },\n ...restOfShadow\n }) => ({\n ...restOfShadow,\n payload: {\n color:\n color != null\n ? {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n }\n : null,\n inset: inset ?? ShadowDefaultValue.inset,\n offsetX: offsetX ?? ShadowDefaultValue.offsetX,\n offsetY: offsetY ?? ShadowDefaultValue.offsetY,\n blurRadius: blurRadius ?? ShadowDefaultValue.blurRadius,\n spreadRadius: spreadRadius ?? ShadowDefaultValue.spreadRadius,\n },\n }),\n ),\n }))\n}\n","import { useQuery } from '@apollo/client'\n\nimport type { ResponsiveValue } from '../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\n\nexport function useColor(\n color:\n | ResponsiveValue<{\n swatchId: string\n alpha: number\n }>\n | null\n | undefined,\n): ResponsiveValue<Color> | null | undefined {\n const swatchIds =\n color == null\n ? []\n : [...Array.from(new Set(color.map(({ value: v }) => v && v.swatchId).filter(isNonNullable)))]\n const skip = swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (color == null || error != null) return null\n\n const { swatches = [] } = data\n\n return color\n .map(({ value: v, ...rest }) => {\n const { swatchId, alpha } = v\n const swatch = swatches.find((s: any) => s && s.id === swatchId)\n\n return swatch == null ? null : { ...rest, value: { swatch, alpha } }\n })\n .filter(isNonNullable)\n}\n","import { useQuery } from '@apollo/client'\n\nimport { FILE_BY_ID } from '../utils/queries'\n\ntype File = {\n id: string\n name: string\n publicUrl: string\n extension: string\n dimensions: { width: number; height: number } | null\n}\n\nexport function useFile(fileId: string | null | undefined): File | null | undefined {\n const { error, data = {} } = useQuery(FILE_BY_ID, {\n skip: fileId == null,\n variables: { id: fileId },\n })\n\n if (fileId == null || error != null) return null\n\n return data.file\n}\n","const keys = <O extends { [key: string]: unknown }>(o: O): (keyof O)[] => Object.keys(o)\n\nexport default keys\n","const coalesce = <T>(...args: Array<T>): T => {\n let i: number\n\n for (i = 0; i < args.length - 1; i += 1) {\n if (args[i] != null) return args[i]\n }\n\n return args[i]\n}\n\nexport default coalesce\n","import keys from './keys'\nimport coalesce from './coalesce'\n\nexport default function shallowMerge<\n A extends Record<string, unknown>,\n B extends Record<string, unknown>,\n>(a: A, b: B): A & B {\n const bKeys = keys(b)\n const merged = { ...a } as A & B\n\n bKeys.forEach(key => {\n // @ts-expect-error: `coalesce` returns `null | undefined` regardless of input guarantees.\n merged[key] = coalesce(merged[key], b[key])\n })\n\n return merged\n}\n","import type { Device as DeviceID, DeviceOverride, ResponsiveValue } from '../../prop-controllers'\nimport shallowMerge from '../../utils/shallowMerge'\n\nexport type Device = {\n id: DeviceID\n minWidth?: number\n maxWidth?: number\n}\n\nexport const DEVICES: Array<Device> = [\n { id: 'desktop', minWidth: 769 },\n { id: 'tablet', minWidth: 476, maxWidth: 768 },\n { id: 'mobile', maxWidth: 475 },\n]\n\nexport const getDevice = (deviceId: DeviceID): Device => {\n const device = DEVICES.find(({ id }) => id === deviceId)\n\n if (device == null) throw new Error(`Unrecognized device ID: \"${deviceId}\".`)\n\n return device\n}\n\nexport type FallbackStrategy<V> = (\n arg0: DeviceOverride<V> | undefined,\n arg1: ResponsiveValue<V>,\n) => DeviceOverride<V> | undefined\n\nfunction defaultStrategy<V>(\n value: DeviceOverride<V> | undefined,\n fallbacks: ResponsiveValue<V>,\n): DeviceOverride<V> | undefined {\n return value || fallbacks[0]\n}\n\nexport function shallowMergeFallbacks<V extends Record<string, unknown>>(\n value: DeviceOverride<V> | undefined,\n fallbacks: ResponsiveValue<V>,\n): DeviceOverride<V> | undefined {\n return [value, ...fallbacks]\n .filter((override): override is DeviceOverride<V> => Boolean(override))\n .reduce((a, b) => ({\n deviceId: a.deviceId || b.deviceId,\n value: shallowMerge(a.value, b.value),\n }))\n}\n\nexport function findDeviceOverride<S>(\n values: ResponsiveValue<S> = [],\n deviceId: string,\n strategy: FallbackStrategy<S> = defaultStrategy,\n): DeviceOverride<S> | undefined {\n const value = values.find(({ deviceId: d }) => d === deviceId)\n const fallbacks = DEVICES.slice(0, DEVICES.findIndex(d => d.id === deviceId) + 1)\n .reverse()\n .map(d => values.find(v => v.deviceId === d.id))\n .filter((override): override is DeviceOverride<S> => Boolean(override))\n\n return value != null || fallbacks.length > 0 ? strategy(value, fallbacks) : undefined\n}\n\nexport type ExtractResponsiveValue<T> = T extends ResponsiveValue<infer V> ? V : never\n\nexport function join<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, R>(\n responsiveValues: A,\n joinFn: (values: { [I in keyof A]: ExtractResponsiveValue<A[I]> | undefined }) => R,\n strategy?: FallbackStrategy<V>,\n): ResponsiveValue<R> {\n return DEVICES.map(({ id }) => id)\n .map(deviceId => {\n const value = joinFn(\n responsiveValues.map(responsiveValue => {\n const deviceValue =\n responsiveValue && findDeviceOverride(responsiveValue, deviceId, strategy)\n\n return deviceValue == null ? undefined : deviceValue.value\n }) as unknown as { [I in keyof A]: ExtractResponsiveValue<A[I] | undefined> },\n )\n\n if (value == null) return null\n\n return { deviceId, value }\n })\n .filter((override): override is DeviceOverride<R> => Boolean(override))\n}\n\nexport const getDeviceMediaQuery = (device: Device): string => {\n const parts = ['@media only screen']\n\n if (device.minWidth != null) {\n parts.push(`(min-width: ${device.minWidth}px)`)\n }\n\n if (device.maxWidth != null) {\n parts.push(`(max-width: ${device.maxWidth}px)`)\n }\n\n return parts.join(' and ')\n}\n","/* eslint-env browser */\n\nimport { useState, useLayoutEffect } from 'react'\n\nimport { DeviceOverride } from '../../prop-controllers'\nimport { DEVICES, findDeviceOverride, getDeviceMediaQuery } from '../utils/devices'\n\nexport function useMediaQuery<S>(responsiveValue?: Array<DeviceOverride<S>>): S | void {\n const [deviceId, setDeviceId] = useState(DEVICES[0].id)\n const { value } = findDeviceOverride(responsiveValue, deviceId) || {}\n\n useLayoutEffect(() => {\n if (responsiveValue == null || window == null) return () => {}\n\n const cleanUpFns = DEVICES.map(device => {\n const mediaQueryList = window.matchMedia(getDeviceMediaQuery(device).replace('@media', ''))\n\n const listener = () => {\n if (mediaQueryList.matches) setDeviceId(device.id)\n }\n\n listener()\n mediaQueryList.addListener(listener)\n\n return () => mediaQueryList.removeListener(listener)\n })\n\n return () => cleanUpFns.forEach(fn => fn())\n })\n\n return value\n}\n","import { useQuery } from '@apollo/client'\n\nimport { PAGE_PATHNAMES_BY_ID } from '../utils/queries'\n\ntype Page = {\n id: string\n pathname: string\n}\n\nexport function usePage(pageId: string | null | undefined): Page | null | undefined {\n const { error, data = {} } = useQuery(PAGE_PATHNAMES_BY_ID, {\n skip: pageId == null,\n variables: { ids: [pageId] },\n })\n\n if (pageId == null || error != null) return null\n\n const { pagePathnamesById: [page] = [] } = data\n\n return page\n}\n","import {\n TargetAndTransition,\n Transition,\n useAnimation,\n useReducedMotion,\n Variants,\n MotionProps,\n} from 'framer-motion'\nimport { TransitionMap } from 'framer-motion/types/types'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport { ResponsiveValue } from '../../../prop-controllers'\nimport { useMediaQuery } from '../../hooks'\nimport { Element } from '../../../state/react-page'\n\nexport type BoxAnimateIn =\n | 'none'\n | 'fadeIn'\n | 'fadeUp'\n | 'fadeDown'\n | 'fadeLeft'\n | 'fadeRight'\n | 'blurIn'\n | 'scaleUp'\n | 'scaleDown'\n\nconst defaultExitedProps = {\n opacity: 0,\n x: 0,\n y: 0,\n scale: 1,\n}\n\ntype BoxAnimationVariants = {\n entered: TargetAndTransition\n exited: TargetAndTransition\n}\n\nexport const boxAnimations: {\n [key in BoxAnimateIn]: {\n transition: TransitionMap\n } & BoxAnimationVariants\n} = {\n none: {\n entered: {\n opacity: 1,\n },\n exited: {\n ...defaultExitedProps,\n opacity: 1,\n },\n transition: {},\n },\n fadeIn: {\n exited: defaultExitedProps,\n entered: {\n opacity: 1,\n },\n transition: {},\n },\n fadeLeft: {\n exited: {\n ...defaultExitedProps,\n x: 60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeRight: {\n exited: {\n ...defaultExitedProps,\n x: -60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeUp: {\n exited: {\n ...defaultExitedProps,\n y: 80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeDown: {\n exited: {\n ...defaultExitedProps,\n y: -80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n blurIn: {\n exited: {\n ...defaultExitedProps,\n filter: 'blur(20px)',\n },\n entered: {\n opacity: 1,\n filter: 'blur(0px)',\n },\n transition: {},\n },\n scaleDown: {\n exited: {\n ...defaultExitedProps,\n scale: 1.2,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n scaleUp: {\n exited: {\n ...defaultExitedProps,\n scale: 0.75,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n}\n\nconst mergeCustomTransitionWithDefault = (\n transitions: TransitionMap,\n props: Transition,\n): TransitionMap | Transition =>\n transitions\n ? Object.keys(transitions).reduce(\n (a, c) => ({\n ...a,\n [c]: {\n ...transitions[c as string],\n ...props,\n },\n }),\n props,\n )\n : props\n\nexport type BoxAnimationType = {\n containerAnimationProps: {\n transition: Transition\n variants: Variants\n }\n parentAnimationProps: {\n transition: Transition\n }\n childAnimationProps: {\n transition: Transition\n variants: Variants\n }\n}\n\nconst useElementOnScreen = (element: HTMLElement | null, options: IntersectionObserverInit) => {\n const [isVisible, setIsVisible] = useState(false)\n\n useEffect(() => {\n const observer = new IntersectionObserver(intersectionCallback, options)\n\n if (element) observer.observe(element)\n\n return () => {\n if (element) observer.unobserve(element)\n }\n\n function intersectionCallback([entry]: IntersectionObserverEntry[]) {\n if (entry?.isIntersecting) {\n setIsVisible(true)\n }\n }\n }, [element, options])\n\n return isVisible\n}\n\nexport const DEFAULT_BOX_ANIMATE_TYPE = 'none'\nexport const DEFAULT_BOX_ANIMATE_DELAY = 0.0\nexport const DEFAULT_BOX_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_ANIMATE_TYPE = 'none'\nexport const DEFAULT_ITEM_ANIMATE_DELAY = 0.0\nexport const DEFAULT_ITEM_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_STAGGER_DURATION = 0.0\n\ntype UseBoxAnimationsPayload = {\n initial?: { container: MotionProps['initial']; parent: MotionProps['initial'] }\n animate?: { container: MotionProps['animate']; parent: MotionProps['animate'] }\n variants?: { container: MotionProps['variants']; child: MotionProps['variants'] }\n transition?: {\n container: MotionProps['transition']\n parent: MotionProps['transition']\n child: MotionProps['transition']\n }\n key?: { container: string }\n}\n\nexport const useBoxAnimations = ({\n boxElement,\n elements,\n ...props\n}: {\n boxAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n boxAnimateDuration: ResponsiveValue<number> | undefined\n boxAnimateDelay: ResponsiveValue<number> | undefined\n itemAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n itemAnimateDuration: ResponsiveValue<number> | undefined\n itemAnimateDelay: ResponsiveValue<number> | undefined\n itemStaggerDuration: ResponsiveValue<number> | undefined\n boxElement: HTMLElement | null\n elements: Element[] | undefined\n}): UseBoxAnimationsPayload => {\n const reducedMotion = useReducedMotion()\n const boxAnimateType = useMediaQuery(props.boxAnimateType) || DEFAULT_BOX_ANIMATE_TYPE\n const boxAnimateDuration = useMediaQuery(props.boxAnimateDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const boxAnimateDelay = useMediaQuery(props.boxAnimateDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const itemAnimateType = useMediaQuery(props.itemAnimateType) || DEFAULT_ITEM_ANIMATE_TYPE\n const itemAnimateDuration =\n useMediaQuery(props.itemAnimateDuration) || DEFAULT_ITEM_ANIMATE_DURATION\n const itemAnimateDelay = useMediaQuery(props.itemAnimateDelay) || DEFAULT_ITEM_ANIMATE_DELAY\n const itemStaggerDuration =\n useMediaQuery(props.itemStaggerDuration) || DEFAULT_ITEM_STAGGER_DURATION\n\n const isBoxVisible = useElementOnScreen(boxElement, {\n root: null,\n rootMargin: `0px 0px -10% 0px`,\n threshold: 0.2,\n })\n\n const itemControls = useAnimation()\n const boxControls = useAnimation()\n\n const setSequence = useCallback(\n (variant: keyof BoxAnimationVariants) => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set(variant)\n itemControls.set(variant)\n },\n [boxControls, itemControls],\n )\n\n const playSequence = useCallback(() => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set('exited')\n itemControls.set('exited')\n boxControls.start('entered')\n itemControls.start('entered')\n }, [boxControls, itemControls])\n\n useEffect(() => {\n if (isBoxVisible) {\n setSequence('entered')\n }\n }, [\n elements\n ?.map(e => e.key)\n .sort()\n .join(),\n setSequence,\n ])\n\n useEffect(() => {\n if (isBoxVisible) {\n playSequence()\n }\n }, [\n isBoxVisible,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemAnimateDelay,\n itemStaggerDuration,\n reducedMotion,\n playSequence,\n ])\n\n const boxVariant = boxAnimations[boxAnimateType]\n const itemVariant = boxAnimations[itemAnimateType]\n\n return {\n initial: {\n container: reducedMotion ? 'entered' : 'exited',\n parent: reducedMotion ? 'entered' : 'exited',\n },\n animate: {\n container: reducedMotion ? undefined : boxControls,\n parent: reducedMotion ? undefined : itemControls,\n },\n variants: {\n container: {\n exited: boxVariant.exited,\n entered: boxVariant.entered,\n },\n child: {\n exited: itemVariant.exited,\n entered: itemVariant.entered,\n },\n },\n transition: {\n container: mergeCustomTransitionWithDefault(boxVariant.transition, {\n delay: boxAnimateDelay,\n duration: boxAnimateDuration,\n }),\n parent: {\n delayChildren: itemAnimateDelay,\n staggerChildren: itemStaggerDuration,\n duration: itemAnimateDuration,\n },\n child: mergeCustomTransitionWithDefault(itemVariant.transition, {\n duration: itemAnimateDuration,\n }),\n },\n key: {\n container:\n boxAnimateType +\n boxAnimateDuration +\n boxAnimateDelay +\n itemAnimateType +\n itemAnimateDuration +\n itemAnimateDelay +\n itemStaggerDuration +\n reducedMotion,\n },\n }\n}\n","export const getIndexes = (spans: Array<Array<number>>, index: number): [number, number] => {\n const flattened = spans.reduce((a, s) => a.concat(s), [])\n\n if (index < 0 || index > flattened.length) throw new RangeError()\n\n let remainder = index\n let rowIndex = 0\n\n while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {\n remainder -= spans[rowIndex].length\n rowIndex += 1\n }\n\n return [rowIndex, remainder]\n}\n","import type { ColorValue as Color } from './types'\n\nexport function colorToString(color?: Color): string {\n return color && color.swatch\n ? `hsla(${color.swatch.hue},${color.swatch.saturation}%,${color.swatch.lightness}%,${color.alpha})`\n : ''\n}\n","import { css, CSSObject } from 'styled-components'\nimport {\n WidthProperty,\n MarginProperty,\n MarginTopProperty,\n MarginRightProperty,\n MarginBottomProperty,\n MarginLeftProperty,\n PaddingProperty,\n PaddingTopProperty,\n PaddingRightProperty,\n PaddingBottomProperty,\n PaddingLeftProperty,\n BorderRadiusProperty,\n BorderTopLeftRadiusProperty,\n BorderTopRightRadiusProperty,\n BorderBottomLeftRadiusProperty,\n BorderBottomRightRadiusProperty,\n} from 'csstype'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n} from '../../prop-controllers'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\nimport { getIndexes } from './columns'\nimport {\n BorderRadiusValue,\n MarginValue,\n PaddingValue,\n TextStyleValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { colorToString } from './colorToString'\nimport {\n BorderSide,\n BorderPropControllerData,\n BoxShadowData,\n BoxShadowPropControllerData,\n} from '../hooks'\n\ntype CSSRules = ReturnType<typeof css>\n\nexport function cssMediaRules<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, P>(\n responsiveValues: A | ((props: P) => A),\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) =>\n | CSSRules\n | CSSObject,\n strategy?: FallbackStrategy<V>,\n): (props: P) => CSSRules {\n return props =>\n joinResponsiveValues(\n typeof responsiveValues === 'function' ? responsiveValues(props) : responsiveValues,\n join,\n strategy,\n ).reduce((acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return css`\n ${acc}${mediaQuery} {\n ${value}\n }\n `\n }, css`` as CSSRules)\n}\n\nexport function cssWidth(\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): (props: { width?: WidthValue }) => CSSRules {\n return props => css`\n max-width: 100%;\n ${cssMediaRules(\n [props.width] as const,\n ([width = defaultValue]) => css`\n width: ${typeof width === 'object' ? `${width.value}${width.unit}` : width};\n `,\n )}\n `\n}\n\nfunction getMarginSide(marginSide: LengthValue | MarginProperty<string | number>) {\n return typeof marginSide === 'object' ? `${marginSide.value}${marginSide.unit}` : marginSide\n}\n\nexport function cssMargin(\n defaultValue: {\n marginTop?: LengthValue | MarginTopProperty<string | number>\n marginRight?: LengthValue | MarginRightProperty<string | number>\n marginBottom?: LengthValue | MarginBottomProperty<string | number>\n marginLeft?: LengthValue | MarginLeftProperty<string | number>\n } = {},\n): (props: { margin?: MarginValue }) => CSSRules {\n const defaultMarginTop = defaultValue.marginTop === undefined ? 0 : defaultValue.marginTop\n const defaultMarginRight =\n defaultValue.marginRight === undefined ? 'auto' : defaultValue.marginRight\n const defaultMarginBottom =\n defaultValue.marginBottom === undefined ? 0 : defaultValue.marginBottom\n const defaultMarginLeft = defaultValue.marginLeft === undefined ? 'auto' : defaultValue.marginLeft\n\n return props => css`\n ${cssMediaRules(\n [props.margin] as const,\n ([\n {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = {} as ExtractResponsiveValue<MarginValue>,\n ]) => css`\n margin-top: ${getMarginSide(marginTop || defaultMarginTop)};\n margin-right: ${getMarginSide(marginRight || defaultMarginRight)};\n margin-bottom: ${getMarginSide(marginBottom || defaultMarginBottom)};\n margin-left: ${getMarginSide(marginLeft || defaultMarginLeft)};\n `,\n )}\n `\n}\n\nfunction getPaddingSide(paddingSide: LengthValue | PaddingProperty<string | number>) {\n return typeof paddingSide === 'object' ? `${paddingSide.value}${paddingSide.unit}` : paddingSide\n}\n\nexport function cssPadding(\n defaultValue: {\n paddingTop?: LengthValue | PaddingTopProperty<string | number>\n paddingRight?: LengthValue | PaddingRightProperty<string | number>\n paddingBottom?: LengthValue | PaddingBottomProperty<string | number>\n paddingLeft?: LengthValue | PaddingLeftProperty<string | number>\n } = {},\n): (props: { padding?: PaddingValue }) => CSSRules {\n const defaultPaddingTop = defaultValue.paddingTop === undefined ? 0 : defaultValue.paddingTop\n const defaultPaddingRight =\n defaultValue.paddingRight === undefined ? 0 : defaultValue.paddingRight\n const defaultPaddingBottom =\n defaultValue.paddingBottom === undefined ? 0 : defaultValue.paddingBottom\n const defaultPaddingLeft = defaultValue.paddingLeft === undefined ? 0 : defaultValue.paddingLeft\n\n return props => css`\n ${cssMediaRules(\n [props.padding] as const,\n ([\n {\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n } = {} as ExtractResponsiveValue<PaddingValue>,\n ]) => css`\n padding-top: ${getPaddingSide(paddingTop || defaultPaddingTop)};\n padding-right: ${getPaddingSide(paddingRight || defaultPaddingRight)};\n padding-bottom: ${getPaddingSide(paddingBottom || defaultPaddingBottom)};\n padding-left: ${getPaddingSide(paddingLeft || defaultPaddingLeft)};\n `,\n )}\n `\n}\n\nconst defaultBorderSide = { width: 0, style: 'solid', color: null }\n\nconst getBorderSide = ({ width, style, color }: BorderSide) =>\n `${width != null ? width : 0}px ${style} ${color != null ? colorToString(color) : 'black'}`\n\nexport function cssBorder(\n defaultValue: {\n borderTop?: BorderSide\n borderRight?: BorderSide\n borderBottom?: BorderSide\n borderLeft?: BorderSide\n } = {},\n): (props: { border?: BorderPropControllerData | null | undefined }) => CSSRules {\n const defaultBorderTop =\n defaultValue.borderTop === undefined ? defaultBorderSide : defaultValue.borderTop\n const defaultBorderRight =\n defaultValue.borderRight === undefined ? defaultBorderSide : defaultValue.borderRight\n const defaultBorderBottom =\n defaultValue.borderBottom === undefined ? defaultBorderSide : defaultValue.borderBottom\n const defaultBorderLeft =\n defaultValue.borderLeft === undefined ? defaultBorderSide : defaultValue.borderLeft\n\n return props => css`\n ${cssMediaRules(\n [props.border] as const,\n ([\n {\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n } = {} as ExtractResponsiveValue<BorderPropControllerData>,\n ]) => css`\n border-top: ${getBorderSide(borderTop || defaultBorderTop)};\n border-right: ${getBorderSide(borderRight || defaultBorderRight)};\n border-bottom: ${getBorderSide(borderBottom || defaultBorderBottom)};\n border-left: ${getBorderSide(borderLeft || defaultBorderLeft)};\n `,\n )}\n `\n}\n\nfunction getBorderRadiusCorner(\n borderRadiusCorner: LengthValue | BorderRadiusProperty<string | number>,\n) {\n return typeof borderRadiusCorner === 'object'\n ? `${borderRadiusCorner.value}${borderRadiusCorner.unit}`\n : borderRadiusCorner\n}\n\nexport function cssBorderRadius(\n defaultValue: {\n borderTopLeftRadius?: LengthValue | BorderTopLeftRadiusProperty<string | number>\n borderTopRightRadius?: LengthValue | BorderTopRightRadiusProperty<string | number>\n borderBottomLeftRadius?: LengthValue | BorderBottomLeftRadiusProperty<string | number>\n borderBottomRightRadius?: LengthValue | BorderBottomRightRadiusProperty<string | number>\n } = {},\n): (props: { borderRadius?: BorderRadiusValue }) => CSSRules {\n const defaultBorderTopLeftRadius =\n defaultValue.borderTopLeftRadius === undefined ? 0 : defaultValue.borderTopLeftRadius\n const defaultBorderTopRightRadius =\n defaultValue.borderTopRightRadius === undefined ? 0 : defaultValue.borderTopRightRadius\n const defaultPaddingBottom =\n defaultValue.borderBottomLeftRadius === undefined ? 0 : defaultValue.borderBottomLeftRadius\n const defaultPaddingLeft =\n defaultValue.borderBottomRightRadius === undefined ? 0 : defaultValue.borderBottomRightRadius\n\n return props => css`\n ${cssMediaRules(\n [props.borderRadius] as const,\n ([\n {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n } = {} as ExtractResponsiveValue<BorderRadiusValue>,\n ]) => css`\n border-top-left-radius: ${getBorderRadiusCorner(\n borderTopLeftRadius || defaultBorderTopLeftRadius,\n )};\n border-top-right-radius: ${getBorderRadiusCorner(\n borderTopRightRadius || defaultBorderTopRightRadius,\n )};\n border-bottom-left-radius: ${getBorderRadiusCorner(\n borderBottomLeftRadius || defaultPaddingBottom,\n )};\n border-bottom-right-radius: ${getBorderRadiusCorner(\n borderBottomRightRadius || defaultPaddingLeft,\n )};\n `,\n )}\n `\n}\n\nconst getBoxShadow = (shadows: BoxShadowData) =>\n shadows\n .map(\n ({ payload: { inset, offsetX, offsetY, blurRadius, spreadRadius, color } }) =>\n `${inset ? 'inset ' : ''}${offsetX.toFixed(1)}px ${offsetY.toFixed(\n 1,\n )}px ${blurRadius}px ${spreadRadius}px ${\n color != null ? colorToString(color) : 'rgba(0,0,0,0.2)'\n }`,\n )\n .filter(Boolean)\n .join()\n\nexport function cssBoxShadow(\n defaultValue: BoxShadowData = [],\n): (props: { boxShadow?: BoxShadowPropControllerData | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules(\n [props.boxShadow] as const,\n ([boxShadow = defaultValue]) => css`\n box-shadow: ${getBoxShadow(boxShadow)};\n `,\n )}\n `\n}\n\nconst floor =\n (d: number) =>\n (v: number): number =>\n Math.floor(10 ** d * v) / 10 ** d\n\nexport function cssGridItem(): (props: {\n grid: ResponsiveValue<{ spans: Array<Array<number>>; count: number }>\n index: number\n columnGap?: ResponsiveValue<LengthValue>\n rowGap?: ResponsiveValue<LengthValue>\n}) => CSSRules {\n return props => css`\n display: flex;\n\n /* TODO: A default span of 12 won't work once the column count is modifiable. */\n ${cssMediaRules(\n [props.grid, props.columnGap, props.rowGap] as const,\n ([\n { spans, count } = { spans: [[12]], count: 12 },\n columnGap = { value: 0, unit: 'px' },\n rowGap = { value: 0, unit: 'px' },\n ]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, props.index)\n const firstCol = columnIndex === 0\n const lastCol = columnIndex === spans[rowIndex].length - 1\n const span = spans[rowIndex][columnIndex]\n const fraction = floor(5)(span / count)\n const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`\n const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${\n columnGap.unit\n } / 2`\n const iePrecisionError = '0.01px'\n const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`\n const firstRow = rowIndex === 0\n const lastRow = rowIndex === spans.length - 1\n\n return span === 0\n ? { display: 'none' }\n : {\n flexBasis,\n minWidth: flexBasis,\n // NOTE: IE11 width breaks without max width\n // https://github.com/philipwalton/flexbugs/issues/3\n maxWidth: flexBasis,\n paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n }\n },\n )}\n `\n}\n\nexport function cssTextStyle(\n defaultValue: {\n fontFamily?: string | null | undefined\n letterSpacing: number | null | undefined\n fontSize: LengthValue | null | undefined\n fontWeight: number | null | undefined\n textTransform: Array<'uppercase'>\n fontStyle: Array<'italic'>\n } = {\n fontFamily: null,\n letterSpacing: null,\n fontSize: null,\n fontWeight: null,\n textTransform: [],\n fontStyle: [],\n },\n): (arg0: { textStyle?: TextStyleValue | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules([props.textStyle], ([textStyle = defaultValue]) => {\n const {\n fontSize,\n fontWeight,\n fontStyle = [],\n textTransform = [],\n letterSpacing,\n fontFamily,\n } = textStyle\n\n return css`\n ${fontFamily != null\n ? css`\n font-family: '${fontFamily}';\n `\n : ''};\n ${fontWeight != null\n ? css`\n font-weight: ${fontWeight};\n `\n : ''};\n ${letterSpacing != null\n ? css`\n letter-spacing: ${letterSpacing}px;\n `\n : ''};\n ${fontSize != null\n ? css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `\n : ''};\n ${textTransform.includes('uppercase')\n ? css`\n text-transform: uppercase;\n `\n : ''};\n ${fontStyle.includes('italic')\n ? css`\n font-style: italic;\n `\n : ''};\n `\n })}\n `\n}\n","const clamp = (min: number, val: number, max: number): number => Math.min(Math.max(min, val), max)\n\nexport default clamp\n","import { useState, useRef, useLayoutEffect, useCallback, ReactNode, CSSProperties } from 'react'\nimport clamp from '../../../../../utils/clamp'\n\nfunction isScrollable(element: HTMLElement) {\n const { overflow, overflowY, overflowX } =\n element.ownerDocument.defaultView!.getComputedStyle(element)\n\n return /(auto|scroll)/.test(overflow + overflowX + overflowY)\n}\n\nfunction getScrollParent(element: HTMLElement): HTMLElement {\n const { parentElement } = element\n\n if (!element || !parentElement) return element\n\n if (isScrollable(element)) return element\n\n return getScrollParent(parentElement)\n}\n\ntype Props = {\n strength: number | null | undefined\n children: (\n getParallaxProps: <P extends { style?: CSSProperties; [key: string]: unknown }>(props: P) => P,\n ) => ReactNode\n}\n\nexport default function Parallax({ strength, children, ...rest }: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [containerScrollTop, setContainerScrollTop] = useState(strength == null ? 0 : strength)\n const lastScrollParentScrollTop = useRef(0)\n\n useLayoutEffect(() => {\n if (!container.current || strength == null || strength === 0) return undefined\n\n const containerDocument = container.current.ownerDocument\n const scrollParent = getScrollParent(container.current)\n const eventTarget =\n containerDocument.documentElement === scrollParent\n ? containerDocument.defaultView!\n : scrollParent\n\n lastScrollParentScrollTop.current = scrollParent.scrollTop\n setContainerScrollTop(strength)\n\n function handleScroll() {\n containerDocument.defaultView!.requestAnimationFrame(() => {\n if (!container.current) return\n\n const { top: containerTop, bottom: containerBottom } =\n container.current.getBoundingClientRect()\n const { top: scrollParentTop, bottom: scrollParentBottom } =\n scrollParent === containerDocument.documentElement\n ? { top: 0, bottom: containerDocument.defaultView!.innerHeight }\n : scrollParent.getBoundingClientRect()\n const { scrollTop: scrollParentScrollTop } =\n scrollParent === containerDocument.documentElement\n ? { scrollTop: containerDocument.defaultView!.pageYOffset }\n : scrollParent\n const scrollParentHeight = scrollParentBottom - scrollParentTop\n const scrollParentScrollDelta = scrollParentScrollTop - lastScrollParentScrollTop.current\n\n lastScrollParentScrollTop.current = scrollParentScrollTop\n\n setContainerScrollTop(scrollTop => {\n const isContainerVisible =\n containerTop < scrollParentTop + scrollParentHeight && containerBottom > scrollParentTop\n const containerScrollRemaining =\n scrollParentScrollDelta > 0 ? 2 * strength! - scrollTop : scrollTop\n const scrollParentScrollRemaining =\n scrollParentScrollDelta > 0\n ? scrollParentTop + containerBottom\n : scrollParentHeight - containerTop\n const parallaxRatio = containerScrollRemaining / scrollParentScrollRemaining\n const containerScrollDelta = isContainerVisible\n ? parallaxRatio * scrollParentScrollDelta\n : 0\n\n return clamp(0, scrollTop + containerScrollDelta, strength! * 2)\n })\n })\n }\n\n eventTarget.addEventListener('scroll', handleScroll)\n\n return () => eventTarget.removeEventListener('scroll', handleScroll)\n }, [strength])\n\n const getProps = useCallback(\n ({ style, ...restOfChildrenProps }) => ({\n ...restOfChildrenProps,\n style: {\n ...style,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n ...(strength == null || strength === 0\n ? {}\n : {\n top: -strength,\n bottom: -strength,\n transform: `translate3d(0, ${containerScrollTop - strength}px, 0)`,\n }),\n },\n }),\n [strength, containerScrollTop],\n )\n\n return (\n <div\n {...rest}\n ref={container}\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}\n >\n {children(getProps)}\n </div>\n )\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DEPRECATED_CONFIG_PROPS = exports.defaultProps = exports.propTypes = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar string = _propTypes[\"default\"].string,\n bool = _propTypes[\"default\"].bool,\n number = _propTypes[\"default\"].number,\n array = _propTypes[\"default\"].array,\n oneOfType = _propTypes[\"default\"].oneOfType,\n shape = _propTypes[\"default\"].shape,\n object = _propTypes[\"default\"].object,\n func = _propTypes[\"default\"].func,\n node = _propTypes[\"default\"].node;\nvar propTypes = {\n url: oneOfType([string, array, object]),\n playing: bool,\n loop: bool,\n controls: bool,\n volume: number,\n muted: bool,\n playbackRate: number,\n width: oneOfType([string, number]),\n height: oneOfType([string, number]),\n style: object,\n progressInterval: number,\n playsinline: bool,\n pip: bool,\n light: oneOfType([bool, string]),\n playIcon: node,\n wrapper: oneOfType([string, func, shape({\n render: func.isRequired\n })]),\n config: shape({\n soundcloud: shape({\n options: object,\n preload: bool\n }),\n youtube: shape({\n playerVars: object,\n embedOptions: object,\n preload: bool\n }),\n facebook: shape({\n appId: string,\n version: string,\n playerId: string\n }),\n dailymotion: shape({\n params: object,\n preload: bool\n }),\n vimeo: shape({\n playerOptions: object,\n preload: bool\n }),\n file: shape({\n attributes: object,\n tracks: array,\n forceVideo: bool,\n forceAudio: bool,\n forceHLS: bool,\n forceDASH: bool,\n hlsOptions: object,\n hlsVersion: string,\n dashVersion: string\n }),\n wistia: shape({\n options: object\n }),\n mixcloud: shape({\n options: object\n }),\n twitch: shape({\n options: object,\n playerId: string\n })\n }),\n onReady: func,\n onStart: func,\n onPlay: func,\n onPause: func,\n onBuffer: func,\n onBufferEnd: func,\n onEnded: func,\n onError: func,\n onDuration: func,\n onSeek: func,\n onProgress: func,\n onEnablePIP: func,\n onDisablePIP: func\n};\nexports.propTypes = propTypes;\nvar defaultProps = {\n playing: false,\n loop: false,\n controls: false,\n volume: null,\n muted: false,\n playbackRate: 1,\n width: '640px',\n height: '360px',\n style: {},\n progressInterval: 1000,\n playsinline: false,\n pip: false,\n light: false,\n wrapper: 'div',\n config: {\n soundcloud: {\n options: {\n visual: true,\n // Undocumented, but makes player fill container and look better\n buying: false,\n liking: false,\n download: false,\n sharing: false,\n show_comments: false,\n show_playcount: false\n }\n },\n youtube: {\n playerVars: {\n playsinline: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1\n },\n embedOptions: {},\n preload: false\n },\n facebook: {\n appId: '1309697205772819',\n version: 'v3.3',\n playerId: null\n },\n dailymotion: {\n params: {\n api: 1,\n 'endscreen-enable': false\n },\n preload: false\n },\n vimeo: {\n playerOptions: {\n autopause: false,\n byline: false,\n portrait: false,\n title: false\n },\n preload: false\n },\n file: {\n attributes: {},\n tracks: [],\n forceVideo: false,\n forceAudio: false,\n forceHLS: false,\n forceDASH: false,\n hlsOptions: {},\n hlsVersion: '0.13.1',\n dashVersion: '2.9.2'\n },\n wistia: {\n options: {}\n },\n mixcloud: {\n options: {\n hide_cover: 1\n }\n },\n twitch: {\n options: {},\n playerId: null\n }\n },\n onReady: function onReady() {},\n onStart: function onStart() {},\n onPlay: function onPlay() {},\n onPause: function onPause() {},\n onBuffer: function onBuffer() {},\n onBufferEnd: function onBufferEnd() {},\n onEnded: function onEnded() {},\n onError: function onError() {},\n onDuration: function onDuration() {},\n onSeek: function onSeek() {},\n onProgress: function onProgress() {},\n onEnablePIP: function onEnablePIP() {},\n onDisablePIP: function onDisablePIP() {}\n};\nexports.defaultProps = defaultProps;\nvar DEPRECATED_CONFIG_PROPS = ['soundcloudConfig', 'youtubeConfig', 'facebookConfig', 'dailymotionConfig', 'vimeoConfig', 'fileConfig', 'wistiaConfig'];\nexports.DEPRECATED_CONFIG_PROPS = DEPRECATED_CONFIG_PROPS;","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseStartTime = parseStartTime;\nexports.parseEndTime = parseEndTime;\nexports.randomString = randomString;\nexports.queryString = queryString;\nexports.getSDK = getSDK;\nexports.getConfig = getConfig;\nexports.omit = omit;\nexports.callPlayer = callPlayer;\nexports.isObject = isObject;\nexports.isEqual = isEqual;\nexports.isMediaStream = isMediaStream;\n\nvar _react = require(\"react\");\n\nvar _loadScript = _interopRequireDefault(require(\"load-script\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nvar _props = require(\"./props\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nvar MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nvar MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nvar MATCH_NUMERIC = /^\\d+$/; // Parse YouTube URL for a start time param, ie ?t=1h14m30s\n// and return the start time in seconds\n\nfunction parseTimeParam(url, pattern) {\n var match = url.match(pattern);\n\n if (match) {\n var stamp = match[1];\n\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n\n return undefined;\n}\n\nfunction parseTimeString(stamp) {\n var seconds = 0;\n var array = MATCH_START_STAMP.exec(stamp);\n\n while (array !== null) {\n var _array = array,\n _array2 = _slicedToArray(_array, 3),\n count = _array2[1],\n period = _array2[2];\n\n if (period === 'h') seconds += parseInt(count, 10) * 60 * 60;\n if (period === 'm') seconds += parseInt(count, 10) * 60;\n if (period === 's') seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n\n return seconds;\n}\n\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\n\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n} // http://stackoverflow.com/a/38622545\n\n\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\n\nfunction queryString(object) {\n return Object.keys(object).map(function (key) {\n return \"\".concat(key, \"=\").concat(object[key]);\n }).join('&');\n} // Util function to load an external SDK\n// or return the SDK if it is already loaded\n\n\nvar requests = {};\n\nfunction getSDK(url, sdkGlobal) {\n var sdkReady = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var isLoaded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {\n return true;\n };\n var fetchScript = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _loadScript[\"default\"];\n\n if (window[sdkGlobal] && isLoaded(window[sdkGlobal])) {\n return Promise.resolve(window[sdkGlobal]);\n }\n\n return new Promise(function (resolve, reject) {\n // If we are already loading the SDK, add the resolve and reject\n // functions to the existing array of requests\n if (requests[url]) {\n requests[url].push({\n resolve: resolve,\n reject: reject\n });\n return;\n }\n\n requests[url] = [{\n resolve: resolve,\n reject: reject\n }];\n\n var onLoaded = function onLoaded(sdk) {\n // When loaded, resolve all pending request promises\n requests[url].forEach(function (request) {\n return request.resolve(sdk);\n });\n };\n\n if (sdkReady) {\n var previousOnReady = window[sdkReady];\n\n window[sdkReady] = function () {\n if (previousOnReady) previousOnReady();\n onLoaded(window[sdkGlobal]);\n };\n }\n\n fetchScript(url, function (err) {\n if (err) {\n // Loading the SDK failed – reject all requests and\n // reset the array of requests for this SDK\n requests[url].forEach(function (request) {\n return request.reject(err);\n });\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(window[sdkGlobal]);\n }\n });\n });\n}\n\nfunction getConfig(props, defaultProps, showWarning) {\n var config = (0, _deepmerge[\"default\"])(defaultProps.config, props.config);\n\n var _iterator = _createForOfIteratorHelper(_props.DEPRECATED_CONFIG_PROPS),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var p = _step.value;\n\n if (props[p]) {\n var key = p.replace(/Config$/, '');\n config = (0, _deepmerge[\"default\"])(config, _defineProperty({}, key, props[p]));\n\n if (showWarning) {\n var link = 'https://github.com/CookPete/react-player#config-prop';\n var message = \"ReactPlayer: %c\".concat(p, \" %cis deprecated, please use the config prop instead \\u2013 \").concat(link);\n console.warn(message, 'font-weight: bold', '');\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return config;\n}\n\nfunction omit(object) {\n var _ref;\n\n for (var _len = arguments.length, arrays = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n arrays[_key - 1] = arguments[_key];\n }\n\n var omitKeys = (_ref = []).concat.apply(_ref, arrays);\n\n var output = {};\n var keys = Object.keys(object);\n\n for (var _i2 = 0, _keys = keys; _i2 < _keys.length; _i2++) {\n var key = _keys[_i2];\n\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n\n return output;\n}\n\nfunction callPlayer(method) {\n var _this$player;\n\n // Util method for calling a method on this.player\n // but guard against errors and console.warn instead\n if (!this.player || !this.player[method]) {\n var message = \"ReactPlayer: \".concat(this.constructor.displayName, \" player could not call %c\").concat(method, \"%c \\u2013 \");\n\n if (!this.player) {\n message += 'The player was not available';\n } else if (!this.player[method]) {\n message += 'The method was not available';\n }\n\n console.warn(message, 'font-weight: bold', '');\n return null;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$player = this.player)[method].apply(_this$player, args);\n}\n\nfunction isObject(val) {\n return val !== null && _typeof(val) === 'object';\n} // Deep comparison of two objects, but ignoring functions\n// and React elements, for use in shouldComponentUpdate\n\n\nfunction isEqual(a, b) {\n if (typeof a === 'function' && typeof b === 'function') {\n return true;\n }\n\n if ((0, _react.isValidElement)(a) && (0, _react.isValidElement)(b)) {\n return true;\n }\n\n if (a instanceof Array && b instanceof Array) {\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i !== a.length; i++) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n if (isObject(a) && isObject(b)) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n\n for (var _i3 = 0, _Object$keys = Object.keys(a); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!isEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return a === b;\n}\n\nfunction isMediaStream(url) {\n return typeof window !== 'undefined' && typeof window.MediaStream !== 'undefined' && url instanceof window.MediaStream;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _props = require(\"./props\");\n\nvar _utils = require(\"./utils\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SEEK_ON_PLAY_EXPIRY = 5000;\n\nvar Player = /*#__PURE__*/function (_Component) {\n _inherits(Player, _Component);\n\n var _super = _createSuper(Player);\n\n function Player() {\n var _this;\n\n _classCallCheck(this, Player);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"isReady\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"isPlaying\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"isLoading\", true);\n\n _defineProperty(_assertThisInitialized(_this), \"loadOnReady\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"startOnPlay\", true);\n\n _defineProperty(_assertThisInitialized(_this), \"seekOnPlay\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"onDurationCalled\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function (key) {\n if (!_this.player) return null;\n return _this.player[key];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progress\", function () {\n if (_this.props.url && _this.player && _this.isReady) {\n var playedSeconds = _this.getCurrentTime() || 0;\n\n var loadedSeconds = _this.getSecondsLoaded();\n\n var duration = _this.getDuration();\n\n if (duration) {\n var progress = {\n playedSeconds: playedSeconds,\n played: playedSeconds / duration\n };\n\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds;\n progress.loaded = loadedSeconds / duration;\n } // Only call onProgress if values have changed\n\n\n if (progress.playedSeconds !== _this.prevPlayed || progress.loadedSeconds !== _this.prevLoaded) {\n _this.props.onProgress(progress);\n }\n\n _this.prevPlayed = progress.playedSeconds;\n _this.prevLoaded = progress.loadedSeconds;\n }\n }\n\n _this.progressTimeout = setTimeout(_this.progress, _this.props.progressFrequency || _this.props.progressInterval);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleReady\", function () {\n if (!_this.mounted) return;\n _this.isReady = true;\n _this.isLoading = false;\n var _this$props = _this.props,\n onReady = _this$props.onReady,\n playing = _this$props.playing,\n volume = _this$props.volume,\n muted = _this$props.muted;\n onReady();\n\n if (!muted && volume !== null) {\n _this.player.setVolume(volume);\n }\n\n if (_this.loadOnReady) {\n _this.player.load(_this.loadOnReady, true);\n\n _this.loadOnReady = null;\n } else if (playing) {\n _this.player.play();\n }\n\n _this.handleDurationCheck();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePlay\", function () {\n _this.isPlaying = true;\n _this.isLoading = false;\n var _this$props2 = _this.props,\n onStart = _this$props2.onStart,\n onPlay = _this$props2.onPlay,\n playbackRate = _this$props2.playbackRate;\n\n if (_this.startOnPlay) {\n if (_this.player.setPlaybackRate && playbackRate !== 1) {\n _this.player.setPlaybackRate(playbackRate);\n }\n\n onStart();\n _this.startOnPlay = false;\n }\n\n onPlay();\n\n if (_this.seekOnPlay) {\n _this.seekTo(_this.seekOnPlay);\n\n _this.seekOnPlay = null;\n }\n\n _this.handleDurationCheck();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePause\", function (e) {\n _this.isPlaying = false;\n\n if (!_this.isLoading) {\n _this.props.onPause(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleEnded\", function () {\n var _this$props3 = _this.props,\n activePlayer = _this$props3.activePlayer,\n loop = _this$props3.loop,\n onEnded = _this$props3.onEnded;\n\n if (activePlayer.loopOnEnded && loop) {\n _this.seekTo(0);\n }\n\n if (!loop) {\n _this.isPlaying = false;\n onEnded();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleError\", function () {\n var _this$props4;\n\n _this.isLoading = false;\n\n (_this$props4 = _this.props).onError.apply(_this$props4, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDurationCheck\", function () {\n clearTimeout(_this.durationCheckTimeout);\n\n var duration = _this.getDuration();\n\n if (duration) {\n if (!_this.onDurationCalled) {\n _this.props.onDuration(duration);\n\n _this.onDurationCalled = true;\n }\n } else {\n _this.durationCheckTimeout = setTimeout(_this.handleDurationCheck, 100);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleLoaded\", function () {\n // Sometimes we know loading has stopped but onReady/onPlay are never called\n // so this provides a way for players to avoid getting stuck\n _this.isLoading = false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (player) {\n if (player) {\n _this.player = player;\n }\n });\n\n return _this;\n }\n\n _createClass(Player, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n this.player.load(this.props.url);\n this.progress();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.progressTimeout);\n clearTimeout(this.durationCheckTimeout);\n\n if (this.isReady) {\n this.player.stop();\n }\n\n if (this.player.disablePIP) {\n this.player.disablePIP();\n }\n\n this.mounted = false;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n // Invoke player methods based on changed props\n var _this$props5 = this.props,\n url = _this$props5.url,\n playing = _this$props5.playing,\n volume = _this$props5.volume,\n muted = _this$props5.muted,\n playbackRate = _this$props5.playbackRate,\n pip = _this$props5.pip,\n loop = _this$props5.loop,\n activePlayer = _this$props5.activePlayer;\n\n if (!(0, _utils.isEqual)(prevProps.url, url)) {\n if (this.isLoading && !activePlayer.forceLoad) {\n console.warn(\"ReactPlayer: the attempt to load \".concat(url, \" is being deferred until the player has loaded\"));\n this.loadOnReady = url;\n return;\n }\n\n this.isLoading = true;\n this.startOnPlay = true;\n this.onDurationCalled = false;\n this.player.load(url, this.isReady);\n }\n\n if (!prevProps.playing && playing && !this.isPlaying) {\n this.player.play();\n }\n\n if (prevProps.playing && !playing && this.isPlaying) {\n this.player.pause();\n }\n\n if (!prevProps.pip && pip && this.player.enablePIP) {\n this.player.enablePIP();\n }\n\n if (prevProps.pip && !pip && this.player.disablePIP) {\n this.player.disablePIP();\n }\n\n if (prevProps.volume !== volume && volume !== null) {\n this.player.setVolume(volume);\n }\n\n if (prevProps.muted !== muted) {\n if (muted) {\n this.player.mute();\n } else {\n this.player.unmute();\n\n if (volume !== null) {\n // Set volume next tick to fix a bug with DailyMotion\n setTimeout(function () {\n return _this2.player.setVolume(volume);\n });\n }\n }\n }\n\n if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate);\n }\n\n if (prevProps.loop !== loop && this.player.setLoop) {\n this.player.setLoop(loop);\n }\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n if (!this.isReady) return null;\n return this.player.getDuration();\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n if (!this.isReady) return null;\n return this.player.getCurrentTime();\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n if (!this.isReady) return null;\n return this.player.getSecondsLoaded();\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(amount, type) {\n var _this3 = this;\n\n // When seeking before player is ready, store value and seek later\n if (!this.isReady && amount !== 0) {\n this.seekOnPlay = amount;\n setTimeout(function () {\n _this3.seekOnPlay = null;\n }, SEEK_ON_PLAY_EXPIRY);\n return;\n }\n\n var isFraction = !type ? amount > 0 && amount < 1 : type === 'fraction';\n\n if (isFraction) {\n // Convert fraction to seconds based on duration\n var duration = this.player.getDuration();\n\n if (!duration) {\n console.warn('ReactPlayer: could not seek using fraction – duration not yet available');\n return;\n }\n\n this.player.seekTo(duration * amount);\n return;\n }\n\n this.player.seekTo(amount);\n }\n }, {\n key: \"render\",\n value: function render() {\n var Player = this.props.activePlayer;\n\n if (!Player) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(Player, _extends({}, this.props, {\n ref: this.ref,\n onReady: this.handleReady,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onLoaded: this.handleLoaded,\n onError: this.handleError\n }));\n }\n }]);\n\n return Player;\n}(_react.Component);\n\nexports[\"default\"] = Player;\n\n_defineProperty(Player, \"displayName\", 'Player');\n\n_defineProperty(Player, \"propTypes\", _props.propTypes);\n\n_defineProperty(Player, \"defaultProps\", _props.defaultProps);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createSinglePlayer;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _props = require(\"./props\");\n\nvar _utils = require(\"./utils\");\n\nvar _Player = _interopRequireDefault(require(\"./Player\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SUPPORTED_PROPS = Object.keys(_props.propTypes);\n\nfunction createSinglePlayer(activePlayer) {\n var _class, _temp;\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(SinglePlayer, _Component);\n\n var _super = _createSuper(SinglePlayer);\n\n function SinglePlayer() {\n var _this;\n\n _classCallCheck(this, SinglePlayer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"config\", (0, _utils.getConfig)(_this.props, _props.defaultProps, true));\n\n _defineProperty(_assertThisInitialized(_this), \"getDuration\", function () {\n if (!_this.player) return null;\n return _this.player.getDuration();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentTime\", function () {\n if (!_this.player) return null;\n return _this.player.getCurrentTime();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getSecondsLoaded\", function () {\n if (!_this.player) return null;\n return _this.player.getSecondsLoaded();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'player';\n if (!_this.player) return null;\n return _this.player.getInternalPlayer(key);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"seekTo\", function (fraction, type) {\n if (!_this.player) return null;\n\n _this.player.seekTo(fraction, type);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (player) {\n _this.player = player;\n });\n\n return _this;\n }\n\n _createClass(SinglePlayer, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !(0, _utils.isEqual)(this.props, nextProps);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.config = (0, _utils.getConfig)(this.props, _props.defaultProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$config$file = this.config.file,\n forceVideo = _this$config$file.forceVideo,\n forceAudio = _this$config$file.forceAudio,\n forceHLS = _this$config$file.forceHLS,\n forceDASH = _this$config$file.forceDASH;\n var skipCanPlay = forceVideo || forceAudio || forceHLS || forceDASH;\n\n if (!activePlayer.canPlay(this.props.url) && !skipCanPlay) {\n return null;\n }\n\n var _this$props = this.props,\n style = _this$props.style,\n width = _this$props.width,\n height = _this$props.height,\n Wrapper = _this$props.wrapper;\n var otherProps = (0, _utils.omit)(this.props, SUPPORTED_PROPS, _props.DEPRECATED_CONFIG_PROPS);\n return /*#__PURE__*/_react[\"default\"].createElement(Wrapper, _extends({\n style: _objectSpread({}, style, {\n width: width,\n height: height\n })\n }, otherProps), /*#__PURE__*/_react[\"default\"].createElement(_Player[\"default\"], _extends({}, this.props, {\n ref: this.ref,\n activePlayer: activePlayer,\n config: this.config\n })));\n }\n }]);\n\n return SinglePlayer;\n }(_react.Component), _defineProperty(_class, \"displayName\", \"\".concat(activePlayer.displayName, \"Player\")), _defineProperty(_class, \"propTypes\", _props.propTypes), _defineProperty(_class, \"defaultProps\", _props.defaultProps), _defineProperty(_class, \"canPlay\", activePlayer.canPlay), _temp;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.YouTube = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar SDK_URL = 'https://www.youtube.com/iframe_api';\nvar SDK_GLOBAL = 'YT';\nvar SDK_GLOBAL_READY = 'onYouTubeIframeAPIReady';\nvar MATCH_URL = /(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})|youtube\\.com\\/playlist\\?list=/;\nvar MATCH_PLAYLIST = /list=([a-zA-Z0-9_-]+)/;\n\nfunction parsePlaylist(url) {\n if (MATCH_PLAYLIST.test(url)) {\n var _url$match = url.match(MATCH_PLAYLIST),\n _url$match2 = _slicedToArray(_url$match, 2),\n playlistId = _url$match2[1];\n\n return {\n listType: 'playlist',\n list: playlistId\n };\n }\n\n return {};\n}\n\nvar YouTube = /*#__PURE__*/function (_Component) {\n _inherits(YouTube, _Component);\n\n var _super = _createSuper(YouTube);\n\n function YouTube() {\n var _this;\n\n _classCallCheck(this, YouTube);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"onStateChange\", function (_ref) {\n var data = _ref.data;\n var _this$props = _this.props,\n onPlay = _this$props.onPlay,\n onPause = _this$props.onPause,\n onBuffer = _this$props.onBuffer,\n onBufferEnd = _this$props.onBufferEnd,\n onEnded = _this$props.onEnded,\n onReady = _this$props.onReady,\n loop = _this$props.loop;\n var _window$SDK_GLOBAL$Pl = window[SDK_GLOBAL].PlayerState,\n PLAYING = _window$SDK_GLOBAL$Pl.PLAYING,\n PAUSED = _window$SDK_GLOBAL$Pl.PAUSED,\n BUFFERING = _window$SDK_GLOBAL$Pl.BUFFERING,\n ENDED = _window$SDK_GLOBAL$Pl.ENDED,\n CUED = _window$SDK_GLOBAL$Pl.CUED;\n\n if (data === PLAYING) {\n onPlay();\n onBufferEnd();\n }\n\n if (data === PAUSED) onPause();\n if (data === BUFFERING) onBuffer();\n\n if (data === ENDED) {\n var isPlaylist = !!_this.callPlayer('getPlaylist');\n\n if (loop && !isPlaylist) {\n _this.play(); // Only loop manually if not playing a playlist\n\n }\n\n onEnded();\n }\n\n if (data === CUED) onReady();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unMute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n _this.container = container;\n });\n\n return _this;\n }\n\n _createClass(YouTube, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n playing = _this$props2.playing,\n muted = _this$props2.muted,\n playsinline = _this$props2.playsinline,\n controls = _this$props2.controls,\n loop = _this$props2.loop,\n config = _this$props2.config,\n _onError = _this$props2.onError;\n var _config$youtube = config.youtube,\n playerVars = _config$youtube.playerVars,\n embedOptions = _config$youtube.embedOptions;\n var id = url && url.match(MATCH_URL)[1];\n\n if (isReady) {\n if (MATCH_PLAYLIST.test(url)) {\n this.player.loadPlaylist(parsePlaylist(url));\n return;\n }\n\n this.player.cueVideoById({\n videoId: id,\n startSeconds: (0, _utils.parseStartTime)(url) || playerVars.start,\n endSeconds: (0, _utils.parseEndTime)(url) || playerVars.end\n });\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, function (YT) {\n return YT.loaded;\n }).then(function (YT) {\n if (!_this2.container) return;\n _this2.player = new YT.Player(_this2.container, _objectSpread({\n width: '100%',\n height: '100%',\n videoId: id,\n playerVars: _objectSpread({\n autoplay: playing ? 1 : 0,\n mute: muted ? 1 : 0,\n controls: controls ? 1 : 0,\n start: (0, _utils.parseStartTime)(url),\n end: (0, _utils.parseEndTime)(url),\n origin: window.location.origin,\n playsinline: playsinline\n }, parsePlaylist(url), {}, playerVars),\n events: {\n onReady: function onReady() {\n if (loop) {\n _this2.player.setLoop(true); // Enable playlist looping\n\n }\n\n _this2.props.onReady();\n },\n onStateChange: _this2.onStateChange,\n onError: function onError(event) {\n return _onError(event.data);\n }\n }\n }, embedOptions));\n }, _onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('playVideo');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pauseVideo');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (!document.body.contains(this.callPlayer('getIframe'))) return;\n this.callPlayer('stopVideo');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(amount) {\n this.callPlayer('seekTo', amount);\n\n if (!this.props.playing) {\n this.pause();\n }\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('setPlaybackRate', rate);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('getDuration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('getCurrentTime');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.callPlayer('getVideoLoadedFraction') * this.getDuration();\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n display: display\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.ref\n }));\n }\n }]);\n\n return YouTube;\n}(_react.Component);\n\nexports.YouTube = YouTube;\n\n_defineProperty(YouTube, \"displayName\", 'YouTube');\n\n_defineProperty(YouTube, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(YouTube);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.SoundCloud = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://w.soundcloud.com/player/api.js';\nvar SDK_GLOBAL = 'SC';\nvar MATCH_URL = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\n\nvar SoundCloud = /*#__PURE__*/function (_Component) {\n _inherits(SoundCloud, _Component);\n\n var _super = _createSuper(SoundCloud);\n\n function SoundCloud() {\n var _this;\n\n _classCallCheck(this, SoundCloud);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"fractionLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.setVolume(0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n if (_this.props.volume !== null) {\n _this.setVolume(_this.props.volume);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(SoundCloud, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (SC) {\n if (!_this2.iframe) return;\n var _SC$Widget$Events = SC.Widget.Events,\n PLAY = _SC$Widget$Events.PLAY,\n PLAY_PROGRESS = _SC$Widget$Events.PLAY_PROGRESS,\n PAUSE = _SC$Widget$Events.PAUSE,\n FINISH = _SC$Widget$Events.FINISH,\n ERROR = _SC$Widget$Events.ERROR;\n\n if (!isReady) {\n _this2.player = SC.Widget(_this2.iframe);\n\n _this2.player.bind(PLAY, _this2.props.onPlay);\n\n _this2.player.bind(PAUSE, _this2.props.onPause);\n\n _this2.player.bind(PLAY_PROGRESS, function (e) {\n _this2.currentTime = e.currentPosition / 1000;\n _this2.fractionLoaded = e.loadedProgress;\n });\n\n _this2.player.bind(FINISH, function () {\n return _this2.props.onEnded();\n });\n\n _this2.player.bind(ERROR, function (e) {\n return _this2.props.onError(e);\n });\n }\n\n _this2.player.load(url, _objectSpread({}, _this2.props.config.soundcloud.options, {\n callback: function callback() {\n _this2.player.getDuration(function (duration) {\n _this2.duration = duration / 1000;\n\n _this2.props.onReady();\n });\n }\n }));\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seekTo', seconds * 1000);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.fractionLoaded * this.duration;\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n display: display\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n ref: this.ref,\n src: \"https://w.soundcloud.com/player/?url=\".concat(encodeURIComponent(this.props.url)),\n style: style,\n frameBorder: 0,\n allow: \"autoplay\"\n });\n }\n }]);\n\n return SoundCloud;\n}(_react.Component);\n\nexports.SoundCloud = SoundCloud;\n\n_defineProperty(SoundCloud, \"displayName\", 'SoundCloud');\n\n_defineProperty(SoundCloud, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(SoundCloud, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(SoundCloud);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Vimeo = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://player.vimeo.com/api/player.js';\nvar SDK_GLOBAL = 'Vimeo';\nvar MATCH_URL = /vimeo\\.com\\/.+/;\nvar MATCH_FILE_URL = /vimeo\\.com\\/external\\/[0-9]+\\..+/;\n\nvar Vimeo = /*#__PURE__*/function (_Component) {\n _inherits(Vimeo, _Component);\n\n var _super = _createSuper(Vimeo);\n\n function Vimeo() {\n var _this;\n\n _classCallCheck(this, Vimeo);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.setVolume(0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n if (_this.props.volume !== null) {\n _this.setVolume(_this.props.volume);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n _this.container = container;\n });\n\n return _this;\n }\n\n _createClass(Vimeo, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n this.duration = null;\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Vimeo) {\n if (!_this2.container) return;\n _this2.player = new Vimeo.Player(_this2.container, _objectSpread({\n url: url,\n autoplay: _this2.props.playing,\n muted: _this2.props.muted,\n loop: _this2.props.loop,\n playsinline: _this2.props.playsinline,\n controls: _this2.props.controls\n }, _this2.props.config.vimeo.playerOptions));\n\n _this2.player.ready().then(function () {\n var iframe = _this2.container.querySelector('iframe');\n\n iframe.style.width = '100%';\n iframe.style.height = '100%';\n })[\"catch\"](_this2.props.onError);\n\n _this2.player.on('loaded', function () {\n _this2.props.onReady();\n\n _this2.refreshDuration();\n });\n\n _this2.player.on('play', function () {\n _this2.props.onPlay();\n\n _this2.refreshDuration();\n });\n\n _this2.player.on('pause', _this2.props.onPause);\n\n _this2.player.on('seeked', function (e) {\n return _this2.props.onSeek(e.seconds);\n });\n\n _this2.player.on('ended', _this2.props.onEnded);\n\n _this2.player.on('error', _this2.props.onError);\n\n _this2.player.on('timeupdate', function (_ref) {\n var seconds = _ref.seconds;\n _this2.currentTime = seconds;\n });\n\n _this2.player.on('progress', function (_ref2) {\n var seconds = _ref2.seconds;\n _this2.secondsLoaded = seconds;\n });\n }, this.props.onError);\n }\n }, {\n key: \"refreshDuration\",\n value: function refreshDuration() {\n var _this3 = this;\n\n this.player.getDuration().then(function (duration) {\n _this3.duration = duration;\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n var promise = this.callPlayer('play');\n\n if (promise) {\n promise[\"catch\"](this.props.onError);\n }\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.callPlayer('unload');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('setCurrentTime', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('setPlaybackRate', rate);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.secondsLoaded;\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n display: display\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: this.props.url,\n ref: this.ref,\n style: style\n });\n }\n }]);\n\n return Vimeo;\n}(_react.Component);\n\nexports.Vimeo = Vimeo;\n\n_defineProperty(Vimeo, \"displayName\", 'Vimeo');\n\n_defineProperty(Vimeo, \"forceLoad\", true);\n\n_defineProperty(Vimeo, \"canPlay\", function (url) {\n if (MATCH_FILE_URL.test(url)) {\n return false;\n }\n\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(Vimeo);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Facebook = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://connect.facebook.net/en_US/sdk.js';\nvar SDK_GLOBAL = 'FB';\nvar SDK_GLOBAL_READY = 'fbAsyncInit';\nvar MATCH_URL = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nvar PLAYER_ID_PREFIX = 'facebook-player-';\n\nvar Facebook = /*#__PURE__*/function (_Component) {\n _inherits(Facebook, _Component);\n\n var _super = _createSuper(Facebook);\n\n function Facebook() {\n var _this;\n\n _classCallCheck(this, Facebook);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"playerID\", _this.props.config.facebook.playerId || \"\".concat(PLAYER_ID_PREFIX).concat((0, _utils.randomString)()));\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unmute');\n });\n\n return _this;\n }\n\n _createClass(Facebook, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n if (isReady) {\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(function (FB) {\n return FB.XFBML.parse();\n });\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(function (FB) {\n FB.init({\n appId: _this2.props.config.facebook.appId,\n xfbml: true,\n version: _this2.props.config.facebook.version\n });\n FB.Event.subscribe('xfbml.render', function (msg) {\n // Here we know the SDK has loaded, even if onReady/onPlay\n // is not called due to a video that cannot be embedded\n _this2.props.onLoaded();\n });\n FB.Event.subscribe('xfbml.ready', function (msg) {\n if (msg.type === 'video' && msg.id === _this2.playerID) {\n _this2.player = msg.instance;\n\n _this2.player.subscribe('startedPlaying', _this2.props.onPlay);\n\n _this2.player.subscribe('paused', _this2.props.onPause);\n\n _this2.player.subscribe('finishedPlaying', _this2.props.onEnded);\n\n _this2.player.subscribe('startedBuffering', _this2.props.onBuffer);\n\n _this2.player.subscribe('finishedBuffering', _this2.props.onBufferEnd);\n\n _this2.player.subscribe('error', _this2.props.onError);\n\n if (!_this2.props.muted) {\n // Player is muted by default\n _this2.callPlayer('unmute');\n }\n\n _this2.props.onReady(); // For some reason Facebook have added `visibility: hidden`\n // to the iframe when autoplay fails, so here we set it back\n\n\n document.getElementById(_this2.playerID).querySelector('iframe').style.visibility = 'visible';\n }\n });\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('getDuration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('getCurrentPosition');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var style = {\n width: '100%',\n height: '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style,\n id: this.playerID,\n className: \"fb-video\",\n \"data-href\": this.props.url,\n \"data-autoplay\": this.props.playing ? 'true' : 'false',\n \"data-allowfullscreen\": \"true\",\n \"data-controls\": this.props.controls ? 'true' : 'false'\n });\n }\n }]);\n\n return Facebook;\n}(_react.Component);\n\nexports.Facebook = Facebook;\n\n_defineProperty(Facebook, \"displayName\", 'Facebook');\n\n_defineProperty(Facebook, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(Facebook, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Facebook);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Streamable = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://cdn.embed.ly/player-0.1.0.min.js';\nvar SDK_GLOBAL = 'playerjs';\nvar MATCH_URL = /streamable\\.com\\/([a-z0-9]+)$/;\n\nvar Streamable = /*#__PURE__*/function (_Component) {\n _inherits(Streamable, _Component);\n\n var _super = _createSuper(Streamable);\n\n function Streamable() {\n var _this;\n\n _classCallCheck(this, Streamable);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unmute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(Streamable, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (playerjs) {\n if (!_this2.iframe) return;\n _this2.player = new playerjs.Player(_this2.iframe);\n\n _this2.player.setLoop(_this2.props.loop);\n\n _this2.player.on('ready', _this2.props.onReady);\n\n _this2.player.on('play', _this2.props.onPlay);\n\n _this2.player.on('pause', _this2.props.onPause);\n\n _this2.player.on('seeked', _this2.props.onSeek);\n\n _this2.player.on('ended', _this2.props.onEnded);\n\n _this2.player.on('error', _this2.props.onError);\n\n _this2.player.on('timeupdate', function (_ref) {\n var duration = _ref.duration,\n seconds = _ref.seconds;\n _this2.duration = duration;\n _this2.currentTime = seconds;\n });\n\n _this2.player.on('buffered', function (_ref2) {\n var percent = _ref2.percent;\n\n if (_this2.duration) {\n _this2.secondsLoaded = _this2.duration * percent;\n }\n });\n\n if (_this2.props.muted) {\n _this2.player.mute();\n }\n }, this.props.onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('setCurrentTime', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.secondsLoaded;\n }\n }, {\n key: \"render\",\n value: function render() {\n var id = this.props.url.match(MATCH_URL)[1];\n var style = {\n width: '100%',\n height: '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n ref: this.ref,\n src: \"https://streamable.com/o/\".concat(id),\n frameBorder: \"0\",\n scrolling: \"no\",\n style: style,\n allowFullScreen: true\n });\n }\n }]);\n\n return Streamable;\n}(_react.Component);\n\nexports.Streamable = Streamable;\n\n_defineProperty(Streamable, \"displayName\", 'Streamable');\n\n_defineProperty(Streamable, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(Streamable);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Wistia = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://fast.wistia.com/assets/external/E-v1.js';\nvar SDK_GLOBAL = 'Wistia';\nvar MATCH_URL = /(?:wistia\\.com|wi\\.st)\\/(?:medias|embed)\\/(.*)$/;\n\nvar Wistia = /*#__PURE__*/function (_Component) {\n _inherits(Wistia, _Component);\n\n var _super = _createSuper(Wistia);\n\n function Wistia() {\n var _this;\n\n _classCallCheck(this, Wistia);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"onPlay\", function () {\n var _this$props;\n\n return (_this$props = _this.props).onPlay.apply(_this$props, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPause\", function () {\n var _this$props2;\n\n return (_this$props2 = _this.props).onPause.apply(_this$props2, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSeek\", function () {\n var _this$props3;\n\n return (_this$props3 = _this.props).onSeek.apply(_this$props3, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEnded\", function () {\n var _this$props4;\n\n return (_this$props4 = _this.props).onEnded.apply(_this$props4, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unmute');\n });\n\n return _this;\n }\n\n _createClass(Wistia, [{\n key: \"getID\",\n value: function getID(url) {\n return url && url.match(MATCH_URL)[1];\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n var _this$props5 = this.props,\n playing = _this$props5.playing,\n muted = _this$props5.muted,\n controls = _this$props5.controls,\n _onReady = _this$props5.onReady,\n config = _this$props5.config,\n onError = _this$props5.onError;\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function () {\n window._wq = window._wq || [];\n\n window._wq.push({\n id: _this2.getID(url),\n options: _objectSpread({\n autoPlay: playing,\n silentAutoPlay: 'allow',\n muted: muted,\n controlsVisibleOnLoad: controls\n }, config.wistia.options),\n onReady: function onReady(player) {\n _this2.player = player;\n\n _this2.unbind();\n\n _this2.player.bind('play', _this2.onPlay);\n\n _this2.player.bind('pause', _this2.onPause);\n\n _this2.player.bind('seek', _this2.onSeek);\n\n _this2.player.bind('end', _this2.onEnded);\n\n _onReady();\n }\n });\n }, onError);\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n this.player.unbind('play', this.onPlay);\n this.player.unbind('pause', this.onPause);\n this.player.unbind('seek', this.onSeek);\n this.player.unbind('end', this.onEnded);\n } // Proxy methods to prevent listener leaks\n\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.unbind();\n this.callPlayer('remove');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('time', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('volume', fraction);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('playbackRate', rate);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('duration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('time');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var id = this.getID(this.props.url);\n var className = \"wistia_embed wistia_async_\".concat(id);\n var style = {\n width: '100%',\n height: '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: id,\n className: className,\n style: style\n });\n }\n }]);\n\n return Wistia;\n}(_react.Component);\n\nexports.Wistia = Wistia;\n\n_defineProperty(Wistia, \"displayName\", 'Wistia');\n\n_defineProperty(Wistia, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(Wistia, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Wistia);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Twitch = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://player.twitch.tv/js/embed/v1.js';\nvar SDK_GLOBAL = 'Twitch';\nvar MATCH_VIDEO_URL = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nvar MATCH_CHANNEL_URL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-z0-9_]+)($|\\?)/;\nvar PLAYER_ID_PREFIX = 'twitch-player-';\n\nvar Twitch = /*#__PURE__*/function (_Component) {\n _inherits(Twitch, _Component);\n\n var _super = _createSuper(Twitch);\n\n function Twitch() {\n var _this;\n\n _classCallCheck(this, Twitch);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"playerID\", _this.props.config.twitch.playerId || \"\".concat(PLAYER_ID_PREFIX).concat((0, _utils.randomString)()));\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('setMuted', true);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('setMuted', false);\n });\n\n return _this;\n }\n\n _createClass(Twitch, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n var _this$props = this.props,\n playsinline = _this$props.playsinline,\n onError = _this$props.onError,\n config = _this$props.config,\n controls = _this$props.controls;\n var isChannel = MATCH_CHANNEL_URL.test(url);\n var id = isChannel ? url.match(MATCH_CHANNEL_URL)[1] : url.match(MATCH_VIDEO_URL)[1];\n\n if (isReady) {\n if (isChannel) {\n this.player.setChannel(id);\n } else {\n this.player.setVideo('v' + id);\n }\n\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Twitch) {\n _this2.player = new Twitch.Player(_this2.playerID, _objectSpread({\n video: isChannel ? '' : id,\n channel: isChannel ? id : '',\n height: '100%',\n width: '100%',\n playsinline: playsinline,\n autoplay: _this2.props.playing,\n muted: _this2.props.muted,\n // https://github.com/CookPete/react-player/issues/733#issuecomment-549085859\n controls: isChannel ? true : controls\n }, config.twitch.options));\n var _Twitch$Player = Twitch.Player,\n READY = _Twitch$Player.READY,\n PLAYING = _Twitch$Player.PLAYING,\n PAUSE = _Twitch$Player.PAUSE,\n ENDED = _Twitch$Player.ENDED,\n ONLINE = _Twitch$Player.ONLINE,\n OFFLINE = _Twitch$Player.OFFLINE;\n\n _this2.player.addEventListener(READY, _this2.props.onReady);\n\n _this2.player.addEventListener(PLAYING, _this2.props.onPlay);\n\n _this2.player.addEventListener(PAUSE, _this2.props.onPause);\n\n _this2.player.addEventListener(ENDED, _this2.props.onEnded); // Prevent weird isLoading behaviour when streams are offline\n\n\n _this2.player.addEventListener(ONLINE, _this2.props.onLoaded);\n\n _this2.player.addEventListener(OFFLINE, _this2.props.onLoaded);\n }, onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.callPlayer('pause');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('getDuration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('getCurrentTime');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var style = {\n width: '100%',\n height: '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style,\n id: this.playerID\n });\n }\n }]);\n\n return Twitch;\n}(_react.Component);\n\nexports.Twitch = Twitch;\n\n_defineProperty(Twitch, \"displayName\", 'Twitch');\n\n_defineProperty(Twitch, \"canPlay\", function (url) {\n return MATCH_VIDEO_URL.test(url) || MATCH_CHANNEL_URL.test(url);\n});\n\n_defineProperty(Twitch, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Twitch);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.DailyMotion = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://api.dmcdn.net/all.js';\nvar SDK_GLOBAL = 'DM';\nvar SDK_GLOBAL_READY = 'dmAsyncInit';\nvar MATCH_URL = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?$/;\n\nvar DailyMotion = /*#__PURE__*/function (_Component) {\n _inherits(DailyMotion, _Component);\n\n var _super = _createSuper(DailyMotion);\n\n function DailyMotion() {\n var _this;\n\n _classCallCheck(this, DailyMotion);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"onDurationChange\", function () {\n var duration = _this.getDuration();\n\n _this.props.onDuration(duration);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('setMuted', true);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('setMuted', false);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n _this.container = container;\n });\n\n return _this;\n }\n\n _createClass(DailyMotion, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n var _this$props = this.props,\n controls = _this$props.controls,\n config = _this$props.config,\n onError = _this$props.onError,\n playing = _this$props.playing;\n\n var _url$match = url.match(MATCH_URL),\n _url$match2 = _slicedToArray(_url$match, 2),\n id = _url$match2[1];\n\n if (this.player) {\n this.player.load(id, {\n start: (0, _utils.parseStartTime)(url),\n autoplay: playing\n });\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, function (DM) {\n return DM.player;\n }).then(function (DM) {\n if (!_this2.container) return;\n var Player = DM.player;\n _this2.player = new Player(_this2.container, {\n width: '100%',\n height: '100%',\n video: id,\n params: _objectSpread({\n controls: controls,\n autoplay: _this2.props.playing,\n mute: _this2.props.muted,\n start: (0, _utils.parseStartTime)(url),\n origin: window.location.origin\n }, config.dailymotion.params),\n events: {\n apiready: _this2.props.onReady,\n seeked: function seeked() {\n return _this2.props.onSeek(_this2.player.currentTime);\n },\n video_end: _this2.props.onEnded,\n durationchange: _this2.onDurationChange,\n pause: _this2.props.onPause,\n playing: _this2.props.onPlay,\n waiting: _this2.props.onBuffer,\n error: function error(event) {\n return onError(event);\n }\n }\n });\n }, onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.player.duration || null;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.player.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.player.bufferedTime;\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n display: display\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.ref\n }));\n }\n }]);\n\n return DailyMotion;\n}(_react.Component);\n\nexports.DailyMotion = DailyMotion;\n\n_defineProperty(DailyMotion, \"displayName\", 'DailyMotion');\n\n_defineProperty(DailyMotion, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(DailyMotion, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(DailyMotion);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Mixcloud = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://widget.mixcloud.com/media/js/widgetApi.js';\nvar SDK_GLOBAL = 'Mixcloud';\nvar MATCH_URL = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\n\nvar Mixcloud = /*#__PURE__*/function (_Component) {\n _inherits(Mixcloud, _Component);\n\n var _super = _createSuper(Mixcloud);\n\n function Mixcloud() {\n var _this;\n\n _classCallCheck(this, Mixcloud);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {// No volume support\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {// No volume support\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(Mixcloud, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Mixcloud) {\n _this2.player = Mixcloud.PlayerWidget(_this2.iframe);\n\n _this2.player.ready.then(function () {\n _this2.player.events.play.on(_this2.props.onPlay);\n\n _this2.player.events.pause.on(_this2.props.onPause);\n\n _this2.player.events.ended.on(_this2.props.onEnded);\n\n _this2.player.events.error.on(_this2.props.error);\n\n _this2.player.events.progress.on(function (seconds, duration) {\n _this2.currentTime = seconds;\n _this2.duration = duration;\n });\n\n _this2.props.onReady();\n });\n }, this.props.onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {// No volume support\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n url = _this$props.url,\n config = _this$props.config;\n var id = url.match(MATCH_URL)[1];\n var style = {\n width: '100%',\n height: '100%'\n };\n var query = (0, _utils.queryString)(_objectSpread({}, config.mixcloud.options, {\n feed: \"/\".concat(id, \"/\")\n })); // We have to give the iframe a key here to prevent a\n // weird dialog appearing when loading a new track\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n key: id,\n ref: this.ref,\n style: style,\n src: \"https://www.mixcloud.com/widget/iframe/?\".concat(query),\n frameBorder: \"0\"\n });\n }\n }]);\n\n return Mixcloud;\n}(_react.Component);\n\nexports.Mixcloud = Mixcloud;\n\n_defineProperty(Mixcloud, \"displayName\", 'Mixcloud');\n\n_defineProperty(Mixcloud, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(Mixcloud, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Mixcloud);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.FilePlayer = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar IOS = typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar AUDIO_EXTENSIONS = /\\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nvar VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)($|\\?)/i;\nvar HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nvar HLS_SDK_URL = 'https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js';\nvar HLS_GLOBAL = 'Hls';\nvar DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nvar DASH_SDK_URL = 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js';\nvar DASH_GLOBAL = 'dashjs';\nvar MATCH_DROPBOX_URL = /www\\.dropbox\\.com\\/.+/;\n\nfunction canPlay(url) {\n if (url instanceof Array) {\n var _iterator = _createForOfIteratorHelper(url),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n if (typeof item === 'string' && canPlay(item)) {\n return true;\n }\n\n if (canPlay(item.src)) {\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n }\n\n if ((0, _utils.isMediaStream)(url)) {\n return true;\n }\n\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url);\n}\n\nfunction supportsWebKitPresentationMode(video) {\n if (!video) video = document.createElement('video'); // Check if Safari supports PiP, and is not on mobile (other than iPad)\n // iPhone safari appears to \"support\" PiP through the check, however PiP does not function\n\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === 'function' && !/iPhone|iPod/.test(navigator.userAgent);\n}\n\nfunction canEnablePIP(url) {\n return canPlay(url) && (!!document.pictureInPictureEnabled || supportsWebKitPresentationMode()) && !AUDIO_EXTENSIONS.test(url);\n}\n\nvar FilePlayer = /*#__PURE__*/function (_Component) {\n _inherits(FilePlayer, _Component);\n\n var _super = _createSuper(FilePlayer);\n\n function FilePlayer() {\n var _this;\n\n _classCallCheck(this, FilePlayer);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), \"onReady\", function () {\n var _this$props;\n\n return (_this$props = _this.props).onReady.apply(_this$props, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPlay\", function () {\n var _this$props2;\n\n return (_this$props2 = _this.props).onPlay.apply(_this$props2, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBuffer\", function () {\n var _this$props3;\n\n return (_this$props3 = _this.props).onBuffer.apply(_this$props3, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBufferEnd\", function () {\n var _this$props4;\n\n return (_this$props4 = _this.props).onBufferEnd.apply(_this$props4, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPause\", function () {\n var _this$props5;\n\n return (_this$props5 = _this.props).onPause.apply(_this$props5, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEnded\", function () {\n var _this$props6;\n\n return (_this$props6 = _this.props).onEnded.apply(_this$props6, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onError\", function () {\n var _this$props7;\n\n return (_this$props7 = _this.props).onError.apply(_this$props7, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEnablePIP\", function () {\n var _this$props8;\n\n return (_this$props8 = _this.props).onEnablePIP.apply(_this$props8, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDisablePIP\", function (e) {\n var _this$props9 = _this.props,\n onDisablePIP = _this$props9.onDisablePIP,\n playing = _this$props9.playing;\n onDisablePIP(e);\n\n if (playing) {\n _this.play();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPresentationModeChange\", function (e) {\n if (_this.player && supportsWebKitPresentationMode(_this.player)) {\n var webkitPresentationMode = _this.player.webkitPresentationMode;\n\n if (webkitPresentationMode === 'picture-in-picture') {\n _this.onEnablePIP(e);\n } else if (webkitPresentationMode === 'inline') {\n _this.onDisablePIP(e);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSeek\", function (e) {\n _this.props.onSeek(e.target.currentTime);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.player.muted = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.player.muted = false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSourceElement\", function (source, index) {\n if (typeof source === 'string') {\n return /*#__PURE__*/_react[\"default\"].createElement(\"source\", {\n key: index,\n src: source\n });\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"source\", _extends({\n key: index\n }, source));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderTrack\", function (track, index) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"track\", _extends({\n key: index\n }, track));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (player) {\n if (_this.player) {\n // Store previous player to be used by removeListeners()\n _this.prevPlayer = _this.player;\n }\n\n _this.player = player;\n });\n\n return _this;\n }\n\n _createClass(FilePlayer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.addListeners(this.player);\n\n if (IOS) {\n this.player.load();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.shouldUseAudio(this.props) !== this.shouldUseAudio(prevProps)) {\n this.removeListeners(this.prevPlayer);\n this.addListeners(this.player);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListeners(this.player);\n\n if (this.hls) {\n this.hls.destroy();\n }\n }\n }, {\n key: \"addListeners\",\n value: function addListeners(player) {\n var playsinline = this.props.playsinline;\n player.addEventListener('canplay', this.onReady);\n player.addEventListener('play', this.onPlay);\n player.addEventListener('waiting', this.onBuffer);\n player.addEventListener('playing', this.onBufferEnd);\n player.addEventListener('pause', this.onPause);\n player.addEventListener('seeked', this.onSeek);\n player.addEventListener('ended', this.onEnded);\n player.addEventListener('error', this.onError);\n player.addEventListener('enterpictureinpicture', this.onEnablePIP);\n player.addEventListener('leavepictureinpicture', this.onDisablePIP);\n player.addEventListener('webkitpresentationmodechanged', this.onPresentationModeChange);\n\n if (playsinline) {\n player.setAttribute('playsinline', '');\n player.setAttribute('webkit-playsinline', '');\n player.setAttribute('x5-playsinline', '');\n }\n }\n }, {\n key: \"removeListeners\",\n value: function removeListeners(player) {\n player.removeEventListener('canplay', this.onReady);\n player.removeEventListener('play', this.onPlay);\n player.removeEventListener('waiting', this.onBuffer);\n player.removeEventListener('playing', this.onBufferEnd);\n player.removeEventListener('pause', this.onPause);\n player.removeEventListener('seeked', this.onSeek);\n player.removeEventListener('ended', this.onEnded);\n player.removeEventListener('error', this.onError);\n player.removeEventListener('enterpictureinpicture', this.onEnablePIP);\n player.removeEventListener('leavepictureinpicture', this.onDisablePIP);\n player.removeEventListener('webkitpresentationmodechanged', this.onPresentationModeChange);\n } // Proxy methods to prevent listener leaks\n\n }, {\n key: \"shouldUseAudio\",\n value: function shouldUseAudio(props) {\n if (props.config.file.forceVideo) {\n return false;\n }\n\n if (props.config.file.attributes.poster) {\n return false; // Use <video> so that poster is shown\n }\n\n return AUDIO_EXTENSIONS.test(props.url) || props.config.file.forceAudio;\n }\n }, {\n key: \"shouldUseHLS\",\n value: function shouldUseHLS(url) {\n return HLS_EXTENSIONS.test(url) && !IOS || this.props.config.file.forceHLS;\n }\n }, {\n key: \"shouldUseDASH\",\n value: function shouldUseDASH(url) {\n return DASH_EXTENSIONS.test(url) || this.props.config.file.forceDASH;\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n var _this$props$config$fi = this.props.config.file,\n hlsVersion = _this$props$config$fi.hlsVersion,\n dashVersion = _this$props$config$fi.dashVersion;\n\n if (this.shouldUseHLS(url)) {\n (0, _utils.getSDK)(HLS_SDK_URL.replace('VERSION', hlsVersion), HLS_GLOBAL).then(function (Hls) {\n _this2.hls = new Hls(_this2.props.config.file.hlsOptions);\n\n _this2.hls.on(Hls.Events.ERROR, function (e, data) {\n _this2.props.onError(e, data, _this2.hls, Hls);\n });\n\n _this2.hls.loadSource(url);\n\n _this2.hls.attachMedia(_this2.player);\n });\n }\n\n if (this.shouldUseDASH(url)) {\n (0, _utils.getSDK)(DASH_SDK_URL.replace('VERSION', dashVersion), DASH_GLOBAL).then(function (dashjs) {\n _this2.dash = dashjs.MediaPlayer().create();\n\n _this2.dash.initialize(_this2.player, url, _this2.props.playing);\n\n _this2.dash.on('error', _this2.props.onError);\n\n _this2.dash.getDebug().setLogToBrowserConsole(false);\n });\n }\n\n if (url instanceof Array) {\n // When setting new urls (<source>) on an already loaded video,\n // HTMLMediaElement.load() is needed to reset the media element\n // and restart the media resource. Just replacing children source\n // dom nodes is not enough\n this.player.load();\n } else if ((0, _utils.isMediaStream)(url)) {\n try {\n this.player.srcObject = url;\n } catch (e) {\n this.player.src = window.URL.createObjectURL(url);\n }\n }\n }\n }, {\n key: \"play\",\n value: function play() {\n var promise = this.player.play();\n\n if (promise) {\n promise[\"catch\"](this.props.onError);\n }\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.player.pause();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.player.removeAttribute('src');\n\n if (this.dash) {\n this.dash.reset();\n }\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.player.currentTime = seconds;\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.player.volume = fraction;\n }\n }, {\n key: \"enablePIP\",\n value: function enablePIP() {\n if (this.player.requestPictureInPicture && document.pictureInPictureElement !== this.player) {\n this.player.requestPictureInPicture();\n } else if (supportsWebKitPresentationMode(this.player) && this.player.webkitPresentationMode !== 'picture-in-picture') {\n this.player.webkitSetPresentationMode('picture-in-picture');\n }\n }\n }, {\n key: \"disablePIP\",\n value: function disablePIP() {\n if (document.exitPictureInPicture && document.pictureInPictureElement === this.player) {\n document.exitPictureInPicture();\n } else if (supportsWebKitPresentationMode(this.player) && this.player.webkitPresentationMode !== 'inline') {\n this.player.webkitSetPresentationMode('inline');\n }\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.player.playbackRate = rate;\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n if (!this.player) return null;\n var _this$player = this.player,\n duration = _this$player.duration,\n seekable = _this$player.seekable; // on iOS, live streams return Infinity for the duration\n // so instead we use the end of the seekable timerange\n\n if (duration === Infinity && seekable.length > 0) {\n return seekable.end(seekable.length - 1);\n }\n\n return duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n if (!this.player) return null;\n return this.player.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n if (!this.player) return null;\n var buffered = this.player.buffered;\n\n if (buffered.length === 0) {\n return 0;\n }\n\n var end = buffered.end(buffered.length - 1);\n var duration = this.getDuration();\n\n if (end > duration) {\n return duration;\n }\n\n return end;\n }\n }, {\n key: \"getSource\",\n value: function getSource(url) {\n var useHLS = this.shouldUseHLS(url);\n var useDASH = this.shouldUseDASH(url);\n\n if (url instanceof Array || (0, _utils.isMediaStream)(url) || useHLS || useDASH) {\n return undefined;\n }\n\n if (MATCH_DROPBOX_URL.test(url)) {\n return url.replace('www.dropbox.com', 'dl.dropboxusercontent.com');\n }\n\n return url;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n url = _this$props10.url,\n playing = _this$props10.playing,\n loop = _this$props10.loop,\n controls = _this$props10.controls,\n muted = _this$props10.muted,\n config = _this$props10.config,\n width = _this$props10.width,\n height = _this$props10.height;\n var useAudio = this.shouldUseAudio(this.props);\n var Element = useAudio ? 'audio' : 'video';\n var style = {\n width: width === 'auto' ? width : '100%',\n height: height === 'auto' ? height : '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(Element, _extends({\n ref: this.ref,\n src: this.getSource(url),\n style: style,\n preload: \"auto\",\n autoPlay: playing || undefined,\n controls: controls,\n muted: muted,\n loop: loop\n }, config.file.attributes), url instanceof Array && url.map(this.renderSourceElement), config.file.tracks.map(this.renderTrack));\n }\n }]);\n\n return FilePlayer;\n}(_react.Component);\n\nexports.FilePlayer = FilePlayer;\n\n_defineProperty(FilePlayer, \"displayName\", 'FilePlayer');\n\n_defineProperty(FilePlayer, \"canPlay\", canPlay);\n\n_defineProperty(FilePlayer, \"canEnablePIP\", canEnablePIP);\n\nvar _default = (0, _singlePlayer[\"default\"])(FilePlayer);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _YouTube = require(\"./YouTube\");\n\nvar _SoundCloud = require(\"./SoundCloud\");\n\nvar _Vimeo = require(\"./Vimeo\");\n\nvar _Facebook = require(\"./Facebook\");\n\nvar _Streamable = require(\"./Streamable\");\n\nvar _Wistia = require(\"./Wistia\");\n\nvar _Twitch = require(\"./Twitch\");\n\nvar _DailyMotion = require(\"./DailyMotion\");\n\nvar _Mixcloud = require(\"./Mixcloud\");\n\nvar _FilePlayer = require(\"./FilePlayer\");\n\nvar _default = [_YouTube.YouTube, _SoundCloud.SoundCloud, _Vimeo.Vimeo, _Facebook.Facebook, _Streamable.Streamable, _Wistia.Wistia, _Twitch.Twitch, _DailyMotion.DailyMotion, _Mixcloud.Mixcloud, _FilePlayer.FilePlayer];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ICON_SIZE = '64px';\n\nvar Preview = /*#__PURE__*/function (_Component) {\n _inherits(Preview, _Component);\n\n var _super = _createSuper(Preview);\n\n function Preview() {\n var _this;\n\n _classCallCheck(this, Preview);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n image: null\n });\n\n return _this;\n }\n\n _createClass(Preview, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n this.fetchImage(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n url = _this$props.url,\n light = _this$props.light;\n\n if (prevProps.url !== url || prevProps.light !== light) {\n this.fetchImage(this.props);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: \"fetchImage\",\n value: function fetchImage(_ref) {\n var _this2 = this;\n\n var url = _ref.url,\n light = _ref.light;\n\n if (typeof light === 'string') {\n this.setState({\n image: light\n });\n return;\n }\n\n this.setState({\n image: null\n });\n return window.fetch(\"https://noembed.com/embed?url=\".concat(url)).then(function (response) {\n return response.json();\n }).then(function (data) {\n if (data.thumbnail_url && _this2.mounted) {\n var image = data.thumbnail_url.replace('height=100', 'height=480');\n\n _this2.setState({\n image: image\n });\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n onClick = _this$props2.onClick,\n playIcon = _this$props2.playIcon;\n var image = this.state.image;\n var flexCenter = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n };\n var styles = {\n preview: _objectSpread({\n width: '100%',\n height: '100%',\n backgroundImage: image ? \"url(\".concat(image, \")\") : undefined,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n cursor: 'pointer'\n }, flexCenter),\n shadow: _objectSpread({\n background: 'radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)',\n borderRadius: ICON_SIZE,\n width: ICON_SIZE,\n height: ICON_SIZE\n }, flexCenter),\n playIcon: {\n borderStyle: 'solid',\n borderWidth: '16px 0 16px 26px',\n borderColor: 'transparent transparent transparent white',\n marginLeft: '7px'\n }\n };\n\n var defaultPlayIcon = /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.shadow,\n className: \"react-player__shadow\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.playIcon,\n className: \"react-player__play-icon\"\n }));\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.preview,\n className: \"react-player__preview\",\n onClick: onClick\n }, playIcon || defaultPlayIcon);\n }\n }]);\n\n return Preview;\n}(_react.Component);\n\nexports[\"default\"] = Preview;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = renderPreloadPlayers;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Player = _interopRequireDefault(require(\"./Player\"));\n\nvar _YouTube = require(\"./players/YouTube\");\n\nvar _SoundCloud = require(\"./players/SoundCloud\");\n\nvar _Vimeo = require(\"./players/Vimeo\");\n\nvar _DailyMotion = require(\"./players/DailyMotion\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar PRELOAD_PLAYERS = [{\n Player: _YouTube.YouTube,\n configKey: 'youtube',\n url: 'https://www.youtube.com/watch?v=GlCmAC4MHek'\n}, {\n Player: _SoundCloud.SoundCloud,\n configKey: 'soundcloud',\n url: 'https://soundcloud.com/seucheu/john-cage-433-8-bit-version'\n}, {\n Player: _Vimeo.Vimeo,\n configKey: 'vimeo',\n url: 'https://vimeo.com/300970506'\n}, {\n Player: _DailyMotion.DailyMotion,\n configKey: 'dailymotion',\n url: 'http://www.dailymotion.com/video/xqdpyk'\n}];\n\nfunction renderPreloadPlayers(url, controls, config) {\n var players = [];\n\n var _iterator = _createForOfIteratorHelper(PRELOAD_PLAYERS),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var player = _step.value;\n\n if (!player.Player.canPlay(url) && config[player.configKey].preload) {\n players.push( /*#__PURE__*/_react[\"default\"].createElement(_Player[\"default\"], {\n key: player.Player.displayName,\n activePlayer: player.Player,\n url: player.url,\n controls: controls,\n playing: true,\n muted: true,\n display: \"none\"\n }));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return players;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"FilePlayer\", {\n enumerable: true,\n get: function get() {\n return _FilePlayer[\"default\"];\n }\n});\nObject.defineProperty(exports, \"YouTube\", {\n enumerable: true,\n get: function get() {\n return _YouTube[\"default\"];\n }\n});\nObject.defineProperty(exports, \"SoundCloud\", {\n enumerable: true,\n get: function get() {\n return _SoundCloud[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Vimeo\", {\n enumerable: true,\n get: function get() {\n return _Vimeo[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Facebook\", {\n enumerable: true,\n get: function get() {\n return _Facebook[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Streamable\", {\n enumerable: true,\n get: function get() {\n return _Streamable[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Wistia\", {\n enumerable: true,\n get: function get() {\n return _Wistia[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Twitch\", {\n enumerable: true,\n get: function get() {\n return _Twitch[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DailyMotion\", {\n enumerable: true,\n get: function get() {\n return _DailyMotion[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Mixcloud\", {\n enumerable: true,\n get: function get() {\n return _Mixcloud[\"default\"];\n }\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _props = require(\"./props\");\n\nvar _utils = require(\"./utils\");\n\nvar _players = _interopRequireDefault(require(\"./players\"));\n\nvar _Player4 = _interopRequireDefault(require(\"./Player\"));\n\nvar _Preview = _interopRequireDefault(require(\"./Preview\"));\n\nvar _FilePlayer = _interopRequireWildcard(require(\"./players/FilePlayer\"));\n\nvar _preload = _interopRequireDefault(require(\"./preload\"));\n\nvar _YouTube = _interopRequireDefault(require(\"./players/YouTube\"));\n\nvar _SoundCloud = _interopRequireDefault(require(\"./players/SoundCloud\"));\n\nvar _Vimeo = _interopRequireDefault(require(\"./players/Vimeo\"));\n\nvar _Facebook = _interopRequireDefault(require(\"./players/Facebook\"));\n\nvar _Streamable = _interopRequireDefault(require(\"./players/Streamable\"));\n\nvar _Wistia = _interopRequireDefault(require(\"./players/Wistia\"));\n\nvar _Twitch = _interopRequireDefault(require(\"./players/Twitch\"));\n\nvar _DailyMotion = _interopRequireDefault(require(\"./players/DailyMotion\"));\n\nvar _Mixcloud = _interopRequireDefault(require(\"./players/Mixcloud\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SUPPORTED_PROPS = Object.keys(_props.propTypes);\nvar customPlayers = [];\n\nvar ReactPlayer = /*#__PURE__*/function (_Component) {\n _inherits(ReactPlayer, _Component);\n\n var _super = _createSuper(ReactPlayer);\n\n function ReactPlayer() {\n var _this;\n\n _classCallCheck(this, ReactPlayer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"config\", (0, _utils.getConfig)(_this.props, _props.defaultProps, true));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n showPreview: !!_this.props.light\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickPreview\", function () {\n _this.setState({\n showPreview: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"showPreview\", function () {\n _this.setState({\n showPreview: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getDuration\", function () {\n if (!_this.player) return null;\n return _this.player.getDuration();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentTime\", function () {\n if (!_this.player) return null;\n return _this.player.getCurrentTime();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getSecondsLoaded\", function () {\n if (!_this.player) return null;\n return _this.player.getSecondsLoaded();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'player';\n if (!_this.player) return null;\n return _this.player.getInternalPlayer(key);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"seekTo\", function (fraction, type) {\n if (!_this.player) return null;\n\n _this.player.seekTo(fraction, type);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleReady\", function () {\n _this.props.onReady(_assertThisInitialized(_this));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"wrapperRef\", function (wrapper) {\n _this.wrapper = wrapper;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"activePlayerRef\", function (player) {\n _this.player = player;\n });\n\n return _this;\n }\n\n _createClass(ReactPlayer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.progressFrequency) {\n var message = 'ReactPlayer: %cprogressFrequency%c is deprecated, please use %cprogressInterval%c instead';\n console.warn(message, 'font-weight: bold', '', 'font-weight: bold', '');\n }\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !(0, _utils.isEqual)(this.props, nextProps) || !(0, _utils.isEqual)(this.state, nextState);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var light = this.props.light;\n this.config = (0, _utils.getConfig)(this.props, _props.defaultProps);\n\n if (!prevProps.light && light) {\n this.setState({\n showPreview: true\n });\n }\n\n if (prevProps.light && !light) {\n this.setState({\n showPreview: false\n });\n }\n }\n }, {\n key: \"getActivePlayer\",\n value: function getActivePlayer(url) {\n for (var _i = 0, _arr = [].concat(_toConsumableArray(customPlayers), _toConsumableArray(_players[\"default\"])); _i < _arr.length; _i++) {\n var _Player = _arr[_i];\n\n if (_Player.canPlay(url)) {\n return _Player;\n }\n } // Fall back to FilePlayer if nothing else can play the URL\n\n\n return _FilePlayer.FilePlayer;\n }\n }, {\n key: \"renderActivePlayer\",\n value: function renderActivePlayer(url, activePlayer) {\n if (!url) return null;\n return /*#__PURE__*/_react[\"default\"].createElement(_Player4[\"default\"], _extends({}, this.props, {\n key: activePlayer.displayName,\n ref: this.activePlayerRef,\n config: this.config,\n activePlayer: activePlayer,\n onReady: this.handleReady\n }));\n }\n }, {\n key: \"sortPlayers\",\n value: function sortPlayers(a, b) {\n // Retain player order to prevent weird iframe behaviour when switching players\n if (a && b) {\n return a.key < b.key ? -1 : 1;\n }\n\n return 0;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n url = _this$props.url,\n controls = _this$props.controls,\n style = _this$props.style,\n width = _this$props.width,\n height = _this$props.height,\n light = _this$props.light,\n playIcon = _this$props.playIcon,\n Wrapper = _this$props.wrapper;\n var showPreview = this.state.showPreview && url;\n var otherProps = (0, _utils.omit)(this.props, SUPPORTED_PROPS, _props.DEPRECATED_CONFIG_PROPS);\n var activePlayer = this.getActivePlayer(url);\n var renderedActivePlayer = this.renderActivePlayer(url, activePlayer);\n var preloadPlayers = (0, _preload[\"default\"])(url, controls, this.config);\n var players = [renderedActivePlayer].concat(_toConsumableArray(preloadPlayers)).sort(this.sortPlayers);\n\n var preview = /*#__PURE__*/_react[\"default\"].createElement(_Preview[\"default\"], {\n url: url,\n light: light,\n playIcon: playIcon,\n onClick: this.handleClickPreview\n });\n\n return /*#__PURE__*/_react[\"default\"].createElement(Wrapper, _extends({\n ref: this.wrapperRef,\n style: _objectSpread({}, style, {\n width: width,\n height: height\n })\n }, otherProps), showPreview ? preview : players);\n }\n }]);\n\n return ReactPlayer;\n}(_react.Component);\n\nexports[\"default\"] = ReactPlayer;\n\n_defineProperty(ReactPlayer, \"addCustomPlayer\", function (player) {\n customPlayers.push(player);\n});\n\n_defineProperty(ReactPlayer, \"removeCustomPlayers\", function () {\n customPlayers = [];\n});\n\n_defineProperty(ReactPlayer, \"displayName\", 'ReactPlayer');\n\n_defineProperty(ReactPlayer, \"propTypes\", _props.propTypes);\n\n_defineProperty(ReactPlayer, \"defaultProps\", _props.defaultProps);\n\n_defineProperty(ReactPlayer, \"canPlay\", function (url) {\n for (var _i2 = 0, _arr2 = [].concat(_toConsumableArray(customPlayers), _toConsumableArray(_players[\"default\"])); _i2 < _arr2.length; _i2++) {\n var _Player2 = _arr2[_i2];\n\n if (_Player2.canPlay(url)) {\n return true;\n }\n }\n\n return false;\n});\n\n_defineProperty(ReactPlayer, \"canEnablePIP\", function (url) {\n for (var _i3 = 0, _arr3 = [].concat(_toConsumableArray(customPlayers), _toConsumableArray(_players[\"default\"])); _i3 < _arr3.length; _i3++) {\n var _Player3 = _arr3[_i3];\n\n if (_Player3.canEnablePIP && _Player3.canEnablePIP(url)) {\n return true;\n }\n }\n\n return false;\n});","import { useState, useLayoutEffect, useRef } from 'react'\nimport ReactPlayer from 'react-player'\nimport styled from 'styled-components'\n\nconst Container = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n overflow: hidden;\n`\n\nconst Mask = styled.div<{ backgroundColor: string | undefined; visible: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${props => props.backgroundColor};\n opacity: ${props => (props.visible ? 1 : 0)};\n transition: opacity 1s;\n`\n\nconst getScale = (element: HTMLElement, aspectRatio: number, zoom: number) => {\n const { offsetWidth: width, offsetHeight: height } = element\n const computedAspectRatio = width / height\n\n return Math.max(aspectRatio / computedAspectRatio, computedAspectRatio / aspectRatio) * zoom\n}\n\ntype Props = {\n url?: string\n aspectRatio?: number\n zoom?: number\n opacity?: number\n maskColor?: string\n}\n\nexport default function BackgroundVideo({\n url = '',\n aspectRatio = 16 / 9,\n zoom = 1,\n maskColor,\n opacity,\n}: Props): JSX.Element {\n const [ready, setReady] = useState(false)\n const [scale, setScale] = useState(1)\n const container = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n const { current: containerEl } = container\n\n if (!containerEl) return undefined\n\n const { defaultView } = containerEl.ownerDocument\n const handleResize = () => setScale(getScale(containerEl, aspectRatio, zoom))\n\n handleResize()\n\n defaultView!.addEventListener('resize', handleResize)\n\n return () => defaultView!.removeEventListener('resize', handleResize)\n }, [aspectRatio, zoom])\n\n if (!ReactPlayer.canPlay(url)) return <></>\n\n return (\n <Container ref={container}>\n {container.current && (\n <ReactPlayer\n url={url}\n config={{\n vimeo: { playerOptions: { background: true } },\n youtube: {\n playerVars: {\n origin: container.current.ownerDocument.defaultView?.location.origin,\n },\n },\n wistia: {\n options: {\n endVideoBehavior: 'loop',\n playbackRateControl: false,\n playbar: false,\n playButton: false,\n volumeControl: false,\n fullscreenButton: false,\n muted: true,\n },\n },\n }}\n playing\n loop\n muted\n controls={false}\n onReady={() => setReady(true)}\n style={{\n transform: `scale3d(${scale}, ${scale}, 1)`,\n opacity,\n }}\n width=\"100%\"\n height=\"100%\"\n />\n )}\n <Mask backgroundColor={maskColor} visible={!ready} />\n </Container>\n )\n}\n","import styled, { css } from 'styled-components'\nimport NextImage from 'next/image'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport { BackgroundsPropControllerData } from '../../../../hooks'\nimport { ResponsiveValue } from '../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport Parallax from '../Parallax'\nimport BackgroundVideo from '../BackgroundVideo'\n\nfunction getColor(color: Color | null | undefined) {\n if (color == null) return 'black'\n\n if (color.swatch == null) {\n return colorToString({ ...color, swatch: { hue: 0, saturation: 0, lightness: 0 } })\n }\n\n return colorToString(color)\n}\n\ntype GradientStop = { color: Color | null | undefined; location: number }\n\nconst getStopsStyle = (stops: GradientStop[]) =>\n stops.map(({ color, location }) => `${getColor(color)} ${location}%`).join(',')\n\ntype AspectRatio = 'wide' | 'standard'\n\nconst getAspectRatio = (aspectRatio: AspectRatio) => {\n switch (aspectRatio) {\n case 'wide':\n return 16 / 9\n case 'standard':\n return 4 / 3\n default:\n return 16 / 9\n }\n}\n\nconst AbsoluteFill = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`\n\nconst Container = styled(AbsoluteFill)`\n border-radius: inherit;\n`\n\nconst BackgroundsContainer = styled(Container)<{ visibility: ResponsiveValue<boolean> }>`\n overflow: hidden;\n ${p =>\n cssMediaRules(\n [p.visibility],\n ([visibility]) => css`\n display: ${visibility === true ? 'block' : 'none'};\n `,\n )}\n`\n\ntype Props = { backgrounds: BackgroundsPropControllerData | null | undefined }\n\nexport default function Backgrounds({ backgrounds }: Props): JSX.Element {\n if (backgrounds == null) return <></>\n\n return (\n <>\n {backgrounds.map(({ value, deviceId }) => {\n const visibility = backgrounds.map(v => ({\n deviceId: v.deviceId,\n value: v.deviceId === deviceId,\n }))\n\n return (\n <BackgroundsContainer key={deviceId} visibility={visibility}>\n {[...value].reverse().map(bg => {\n if (bg.type === 'color') {\n return (\n <Container\n key={bg.id}\n style={{\n backgroundColor: getColor(bg.payload),\n }}\n />\n )\n }\n\n if (bg.type === 'image' && bg.payload) {\n const {\n publicUrl,\n position,\n repeat = 'no-repeat',\n size = 'cover',\n opacity,\n parallax,\n } = bg.payload\n const backgroundPosition = `${position.x}% ${position.y}%`\n\n if (repeat === 'no-repeat' && size !== 'auto' && publicUrl != null) {\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ style: { opacity, overflow: 'hidden' } })}>\n <NextImage\n src={publicUrl}\n layout=\"fill\"\n objectPosition={backgroundPosition}\n objectFit={size}\n />\n </div>\n )}\n </Parallax>\n )\n }\n\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <Container\n {...getParallaxProps({\n style: {\n backgroundImage: publicUrl != null ? `url('${publicUrl}')` : undefined,\n backgroundPosition,\n backgroundRepeat: repeat,\n backgroundSize: size,\n opacity,\n },\n })}\n />\n )}\n </Parallax>\n )\n }\n\n if (bg.type === 'gradient' && bg.payload) {\n const { angle, stops, isRadial } = bg.payload\n const gradient = `${getStopsStyle(stops)}`\n\n return (\n <Container\n key={bg.id}\n style={{\n background: isRadial\n ? `radial-gradient(${gradient})`\n : `linear-gradient(${angle}rad, ${gradient})`,\n }}\n />\n )\n }\n\n if (bg.type === 'video' && bg.payload) {\n const { url, aspectRatio, maskColor, zoom, opacity, parallax } = bg.payload\n\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <Container {...getParallaxProps({})}>\n <BackgroundVideo\n url={url}\n zoom={zoom}\n opacity={opacity}\n aspectRatio={getAspectRatio(aspectRatio)}\n maskColor={getColor(maskColor)}\n />\n </Container>\n )}\n </Parallax>\n )\n }\n\n return null\n })}\n </BackgroundsContainer>\n )\n })}\n </>\n )\n}\n","import {\n ReactElement,\n ElementType,\n forwardRef,\n Children,\n ComponentPropsWithoutRef,\n useImperativeHandle,\n useState,\n} from 'react'\nimport styled from 'styled-components'\nimport { motion } from 'framer-motion'\n\nimport Backgrounds from './components/Backgrounds'\nimport { BackgroundsValue as BackgroundsPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { useBackgrounds } from '../../hooks'\nimport { Ref } from 'react'\n\nconst OuterContainer = styled(motion.div)`\n position: relative;\n width: 100%;\n margin: 0 auto;\n\n > * {\n border-radius: inherit;\n height: inherit;\n }\n\n > :last-child {\n position: relative;\n }\n`\n\ntype BaseProps = {\n backgrounds: BackgroundsPropControllerValue | null | undefined\n children: ReactElement<ElementType>\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof OuterContainer>, keyof BaseProps>\n\nexport default forwardRef<HTMLDivElement | null, Props>(function BackgroundsContainer(\n { backgrounds, children, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement | null>,\n) {\n const [handle, setHandle] = useState<HTMLDivElement | null>(null)\n\n useImperativeHandle(ref, () => handle, [handle])\n\n return (\n <OuterContainer {...restOfProps} ref={setHandle}>\n <Backgrounds backgrounds={useBackgrounds(backgrounds)} />\n {Children.only(children)}\n </OuterContainer>\n )\n})\n","import { forwardRef, Ref, useImperativeHandle, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport { motion } from 'framer-motion'\n\nimport { Element } from '../../../react'\nimport Placeholder from './components/Placeholder'\nimport { BoxAnimateIn, useBoxAnimations } from './animations'\nimport {\n BorderRadiusValue,\n ElementIDValue,\n WidthValue,\n MarginValue,\n PaddingValue,\n ResponsiveIconRadioGroupValue,\n GridValue,\n GapYValue,\n GapXValue,\n CheckboxValue,\n ResponsiveSelectValue,\n ResponsiveNumberValue,\n BackgroundsValue,\n BorderValue,\n ShadowsValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssWidth,\n cssMargin,\n cssPadding,\n cssBorderRadius,\n cssGridItem,\n cssMediaRules,\n cssBorder,\n cssBoxShadow,\n} from '../../utils/cssMediaRules'\nimport { BoxModelHandle, parse, createBox } from '../../../box-model'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n} from '../../hooks'\n\ntype Props = {\n id?: ElementIDValue\n backgrounds?: BackgroundsValue\n width?: WidthValue\n height?: ResponsiveIconRadioGroupValue<'auto' | 'stretch'>\n verticalAlign?: ResponsiveIconRadioGroupValue<\n 'flex-start' | 'center' | 'flex-end' | 'space-between'\n >\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\n rowGap?: GapYValue\n columnGap?: GapXValue\n boxAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n boxAnimateDuration?: ResponsiveNumberValue\n boxAnimateDelay?: ResponsiveNumberValue\n itemAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n itemAnimateDuration?: ResponsiveNumberValue\n itemAnimateDelay?: ResponsiveNumberValue\n itemStaggerDuration?: ResponsiveNumberValue\n hidePlaceholder?: CheckboxValue\n children?: GridValue\n}\n\nconst StyledBackgroundsContainer = styled(BackgroundsContainer)<{\n width: Props['width']\n margin: Props['margin']\n borderRadius: Props['borderRadius']\n alignSelf: Props['height']\n}>`\n display: flex;\n ${cssWidth()}\n ${cssMargin()}\n ${cssBorderRadius()}\n ${props => cssMediaRules([props.alignSelf] as const, ([alignSelf = 'auto']) => ({ alignSelf }))}\n`\n\nconst Grid = styled(motion.div)<{\n padding: Props['padding']\n border: BorderPropControllerData | null | undefined\n boxShadow: BoxShadowPropControllerData | null | undefined\n alignContent: Props['verticalAlign']\n}>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n ${cssPadding()}\n ${cssBorder()}\n ${cssBoxShadow()}\n ${props =>\n cssMediaRules([props.alignContent] as const, ([alignContent = 'flex-start']) => ({\n alignContent,\n }))}\n`\nconst GridItem = styled(motion.div)<{\n grid: NonNullable<Props['children']>['columns']\n alignItems: Props['verticalAlign']\n index: number\n columnGap: Props['columnGap']\n rowGap: Props['rowGap']\n}>`\n display: flex;\n\n /* IE11 doesn't recognize space-between and treats it as stretch, so we fall back to flex-start */\n align-items: flex-start;\n ${cssGridItem()}\n ${props =>\n cssMediaRules([props.alignItems] as const, ([alignItems = 'flex-start']) => ({ alignItems }))}\n`\n\nexport default forwardRef(function Box(\n {\n id,\n backgrounds,\n width,\n height,\n margin,\n padding,\n border,\n children,\n borderRadius,\n boxShadow,\n rowGap,\n columnGap,\n hidePlaceholder,\n verticalAlign,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n }: Props,\n ref: Ref<BoxModelHandle>,\n) {\n const innerRef = useRef<HTMLDivElement | null>(null)\n const [boxElement, setBoxElement] = useState<HTMLElement | null>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const paddingBoxElement = innerRef.current\n const borderBoxElement = innerRef.current\n const marginBoxElement = boxElement\n const borderBox = innerRef.current?.getBoundingClientRect()\n const paddingBoxComputedStyle =\n paddingBoxElement?.ownerDocument.defaultView?.getComputedStyle(paddingBoxElement)\n const borderBoxComputedStyle =\n borderBoxElement?.ownerDocument.defaultView?.getComputedStyle(borderBoxElement)\n const marginBoxComputedStyle =\n marginBoxElement?.ownerDocument.defaultView?.getComputedStyle(marginBoxElement)\n const padding = paddingBoxComputedStyle && {\n top: parse(paddingBoxComputedStyle.paddingTop),\n right: parse(paddingBoxComputedStyle.paddingRight),\n bottom: parse(paddingBoxComputedStyle.paddingBottom),\n left: parse(paddingBoxComputedStyle.paddingLeft),\n }\n const border = borderBoxComputedStyle && {\n top: parse(borderBoxComputedStyle.borderTopWidth),\n right: parse(borderBoxComputedStyle.borderRightWidth),\n bottom: parse(borderBoxComputedStyle.borderBottomWidth),\n left: parse(borderBoxComputedStyle.borderLeftWidth),\n }\n const margin = marginBoxComputedStyle && {\n top: parse(marginBoxComputedStyle.marginTop),\n right: parse(marginBoxComputedStyle.marginRight),\n bottom: parse(marginBoxComputedStyle.marginBottom),\n left: parse(marginBoxComputedStyle.marginLeft),\n }\n\n return borderBox ? createBox({ borderBox, padding, border, margin }) : null\n },\n }),\n [boxElement],\n )\n\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\n\n const { initial, animate, variants, transition, key } = useBoxAnimations({\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n boxElement,\n elements: children?.elements,\n })\n\n return (\n <StyledBackgroundsContainer\n ref={setBoxElement}\n id={id}\n backgrounds={backgrounds}\n width={width}\n margin={margin}\n borderRadius={borderRadius}\n alignSelf={height}\n animate={animate?.container}\n initial={initial?.container}\n variants={variants?.container}\n transition={transition?.container}\n key={key?.container}\n >\n <Grid\n ref={innerRef}\n padding={padding}\n border={borderData}\n boxShadow={boxShadowData}\n alignContent={verticalAlign}\n animate={animate?.parent}\n initial={initial?.parent}\n transition={transition?.parent}\n >\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n alignItems={verticalAlign}\n variants={variants?.child}\n transition={transition?.child}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder hide={hidePlaceholder} />\n )}\n </Grid>\n </StyledBackgroundsContainer>\n )\n})\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return e(r.overflowY,n)||e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}export default function(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x=\"start\"===d||\"nearest\"===d?y:\"end\"===d?M:y+b/2,I=\"center\"===u?V+H/2:\"end\"===u?E:V,C=[],T=0;T<s.length;T++){var k=s[T],B=k.getBoundingClientRect(),D=B.height,O=B.width,R=B.top,X=B.right,Y=B.bottom,L=B.left;if(\"if-needed\"===l&&y>=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J=\"offsetWidth\"in k?k.offsetWidth-k.clientWidth-j-z:0,K=\"offsetHeight\"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F=\"start\"===d?x:\"end\"===d?x-g:\"nearest\"===d?r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G=\"start\"===u?I:\"center\"===u?I-m/2:\"end\"===u?I-m:r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F=\"start\"===d?x-R-q:\"end\"===d?x-Y+A+K:\"nearest\"===d?r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G=\"start\"===u?I-L-j:\"center\"===u?I-(L+O/2)+J/2:\"end\"===u?I-X+z+J:r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C}\n//# sourceMappingURL=index.module.js.map\n","import compute from 'compute-scroll-into-view';\n\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\n\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\n\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n\n if (isOptionsObject(options)) {\n return options;\n }\n\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\n\nfunction scrollIntoView(target, options) {\n var isTargetAttached = target.isConnected || target.ownerDocument.documentElement.contains(target);\n\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(isTargetAttached ? compute(target, options) : []);\n }\n\n if (!isTargetAttached) {\n return;\n }\n\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\n\nexport default scrollIntoView;","import { ComponentPropsWithoutRef, forwardRef, MouseEvent } from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport NextLink from 'next/link'\n\nimport { LinkValue as LinkPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { usePage } from '../../hooks'\nimport { useElementId } from '../../../runtimes/react'\n\ntype BaseProps = {\n link?: LinkPropControllerValue\n onClick?: (event: MouseEvent<HTMLAnchorElement>) => unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'a'>, keyof BaseProps>\n\nexport const Link = forwardRef<HTMLAnchorElement, Props>(function Link(\n { link, onClick = () => {}, ...restOfProps }: Props,\n ref,\n) {\n const page = usePage(link && link.type === 'OPEN_PAGE' ? link.payload.pageId : null)\n const elementKey =\n link?.type === 'SCROLL_TO_ELEMENT' ? link.payload.elementIdConfig?.elementKey : null\n const elementId = useElementId(elementKey)\n\n let href = ''\n let target: '_blank' | '_self' | undefined\n let block: 'start' | 'center' | 'end' | undefined\n\n if (link) {\n switch (link.type) {\n case 'OPEN_PAGE': {\n if (page) href = `/${page.pathname}`\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'OPEN_URL': {\n href = link.payload.url\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'SEND_EMAIL': {\n const { to, subject = '', body = '' } = link.payload\n\n if (to != null) href = `mailto:${to}?subject=${subject}&body=${body}`\n\n break\n }\n\n case 'CALL_PHONE': {\n href = `tel:${link.payload.phoneNumber}`\n\n break\n }\n\n case 'SCROLL_TO_ELEMENT': {\n href = `#${elementId ?? ''}`\n block = link.payload.block\n\n break\n }\n\n default:\n throw new RangeError(`Invalid link type \"${(link as any).type}.\"`)\n }\n }\n\n function handleClick(event: MouseEvent<HTMLAnchorElement>) {\n onClick(event)\n\n if (event.defaultPrevented) return\n\n /**\n * When we introduced `next/link` instead of just `a` element slate no longer prevented link from navigating within\n * content mode. This is a hack to compensate for what would be expected as slate's default behavior.\n * On upgrade of slate this can be reevaluated.\n */\n if (event.currentTarget.isContentEditable) return event.preventDefault()\n\n if (link && link.type === 'SCROLL_TO_ELEMENT') {\n let hash: string | undefined\n\n try {\n hash = new URL(`http://www.example.com/${href}`).hash\n } catch (error) {\n console.error(`Link received invalid href: ${href}`, error)\n }\n\n if (href != null && href === hash) {\n event.preventDefault()\n const view = event.view as unknown as Window\n\n scrollIntoView(view.document.querySelector(hash)!, {\n behavior: 'smooth',\n block,\n })\n\n if (view.location.hash !== hash) view.history.pushState({}, '', hash)\n }\n }\n }\n\n return (\n <NextLink href={href}>\n {/* eslint-disable-next-line */}\n <a {...restOfProps} ref={ref} target={target} onClick={handleClick} />\n </NextLink>\n )\n})\n","import { ReactElement, ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport ColorHelper from 'color'\n\nimport { cssMediaRules, cssWidth, cssMargin, cssTextStyle } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\n ResponsiveColorValue,\n TextInputValue,\n ResponsiveSelectValue,\n ResponsiveIconRadioGroupValue,\n TextStyleValue,\n LinkValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../utils/types'\nimport { colorToString } from '../../utils/colorToString'\nimport { Link } from '../../shared/Link'\nimport { useColor } from '../../hooks'\n\ntype ControllerProps = {\n id?: ElementIDValue\n children?: TextInputValue\n link?: LinkValue\n variant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n color?: ResponsiveColorValue\n textColor?: ResponsiveColorValue\n textStyle?: TextStyleValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledButton = styled(Link)<{\n width: ControllerProps['width']\n margin: ControllerProps['margin']\n variant: ControllerProps['variant']\n shape: ControllerProps['shape']\n size: ControllerProps['size']\n textColor: ResponsiveValue<Color> | null | undefined\n color: ResponsiveValue<Color> | null | undefined\n textStyle: ControllerProps['textStyle']\n}>`\n display: table;\n border: 0;\n outline: 0;\n user-select: none;\n cursor: pointer;\n font-family: inherit;\n text-decoration: none;\n text-align: center;\n ${cssWidth('auto')}\n ${cssMargin()}\n ${p =>\n cssMediaRules(\n [p.variant, p.shape, p.size, p.textColor, p.color] as const,\n ([\n variant = 'flat',\n shape = 'rounded',\n size = 'medium',\n textColor = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 },\n color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => {\n const fontSize = {\n value: { small: 12, medium: 14, large: 18 }[size],\n unit: 'px',\n }\n\n return css`\n color: ${colorToString(textColor)};\n border-radius: ${{ square: 0, rounded: 4, pill: 500 }[shape]}px;\n padding: ${{ small: '8px 12px', medium: '12px 16px', large: '16px 20px' }[size]};\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n\n ${{\n flat: css`\n background: ${colorToString(color)};\n border: none;\n transition: ${['color', 'background', 'border', 'box-shadow']\n .map(property => `${property} 0.15s ease-in-out`)\n .join(', ')};\n\n :hover {\n background: ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n }\n\n :active {\n background: ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n }\n `,\n outline: css`\n background: transparent;\n box-shadow: inset 0 0 0 2px ${colorToString(color)};\n transition: ${['color', 'background', 'box-shadow']\n .map(property => `${property} 0.15s ease-in-out`)\n .join(', ')};\n\n :hover {\n box-shadow: inset 0 0 0 2px ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n color: ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n }\n\n :active {\n box-shadow: inset 0 0 0 2px ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n color: ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n }\n `,\n shadow: css`\n background: ${colorToString(color)};\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.2);\n transition: ${['transform', 'box-shadow']\n .map(property => `${property} 0.18s`)\n .join(', ')};\n\n :hover {\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.3);\n transform: translateY(-1px);\n }\n\n :active {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 4px 6px -3px rgba(0, 0, 0, 0.3);\n transform: translateY(0px);\n }\n `,\n clear: css`\n background: transparent;\n border: none;\n\n :hover {\n color: ${ColorHelper(colorToString(textColor)).alpha(0.5).toString()};\n }\n\n :active {\n color: ${ColorHelper(colorToString(textColor)).alpha(0.6).toString()};\n }\n `,\n blocky: css`\n background: ${colorToString(color)};\n border-width: 1px;\n border-style: solid;\n border-color: ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n box-shadow: 0 4px ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n transition: ${['transform', 'box-shadow']\n .map(property => `${property} 0.1s`)\n .join(', ')};\n\n :hover {\n transform: translateY(2px);\n box-shadow: 0 2px ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n }\n\n :active {\n transform: translateY(4px);\n box-shadow: 0 0 ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n }\n `,\n bubbly: css`\n background: linear-gradient(\n 180deg,\n ${ColorHelper(colorToString(color)).lighten(0.05).hex()},\n ${ColorHelper(colorToString(color)).darken(0.3).saturate(0.05).hex()}\n );\n position: relative;\n z-index: 0;\n\n :before {\n position: absolute;\n content: '';\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: inherit;\n background: linear-gradient(\n 180deg,\n ${ColorHelper(colorToString(color)).lighten(0.2).hex()},\n ${ColorHelper(colorToString(color)).darken(0.2).saturate(0.05).hex()}\n );\n opacity: 0;\n transition: opacity 0.15s;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n :before {\n opacity: 0.25;\n }\n }\n `,\n skewed: css`\n position: relative;\n z-index: 0;\n\n :before {\n position: absolute;\n content: '';\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n background: ${colorToString(color)};\n transform: skewX(-12deg);\n border-radius: inherit;\n transition: transform 0.2s cubic-bezier(0.25, 0, 0.25, 1.75);\n }\n\n :hover:before {\n transform: skew(0deg);\n }\n\n :active:before {\n transform: skew(-8deg);\n }\n `,\n }[variant]}\n `\n },\n )}\n ${cssTextStyle()}\n`\n\ntype BaseProps = {\n id?: ControllerProps['id']\n children?: ReactElement | string\n link?: ControllerProps['link']\n variant?: ControllerProps['variant']\n shape?: ControllerProps['shape']\n size?: ControllerProps['size']\n textColor?: ControllerProps['textColor']\n color?: ControllerProps['color']\n textStyle?: ControllerProps['textStyle']\n width?: ControllerProps['width']\n margin?: ControllerProps['margin']\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof StyledButton>, keyof BaseProps>\n\nexport default forwardRef<HTMLAnchorElement, Props>(function Button(\n {\n id,\n children,\n link,\n variant,\n shape,\n size,\n textColor,\n color,\n textStyle,\n width,\n margin,\n ...restOfProps\n },\n ref,\n) {\n return (\n <StyledButton\n {...restOfProps}\n ref={ref}\n id={id}\n // @ts-expect-error: HTMLAnchorElement `color` attribute conflicts with prop\n color={useColor(color)}\n link={link}\n margin={margin}\n shape={shape}\n size={size}\n textColor={useColor(textColor)}\n textStyle={textStyle}\n variant={variant}\n width={width}\n >\n {children == null ? 'Button Text' : children}\n </StyledButton>\n )\n})\n","import React, { useRef } from 'react';\n\n// vector add\nfunction addV(v1, v2) {\n return v1.map(function (v, i) {\n return v + v2[i];\n });\n} // vector substract\n\nfunction subV(v1, v2) {\n return v1.map(function (v, i) {\n return v - v2[i];\n });\n}\n/**\r\n * Calculates distance\r\n * @param movement the difference between current and initial vectors\r\n * @returns distance\r\n */\n\nfunction calculateDistance(movement) {\n return Math.hypot.apply(Math, movement);\n}\nfunction calculateAllGeometry(movement, delta) {\n if (delta === void 0) {\n delta = movement;\n }\n\n var dl = calculateDistance(delta);\n var alpha = dl === 0 ? 0 : 1 / dl;\n var direction = delta.map(function (v) {\n return alpha * v;\n });\n var distance = calculateDistance(movement);\n return {\n distance: distance,\n direction: direction\n };\n}\n/**\r\n * Calculates all kinematics\r\n * @template T the expected vector type\r\n * @param movement the difference between current and initial vectors\r\n * @param delta the difference between current and previous vectors\r\n * @param delta_t the time difference between current and previous timestamps\r\n * @returns all kinematics\r\n */\n\nfunction calculateAllKinematics(movement, delta, dt) {\n var dl = calculateDistance(delta);\n var alpha = dl === 0 ? 0 : 1 / dl;\n var beta = dt === 0 ? 0 : 1 / dt;\n var velocity = beta * dl;\n var velocities = delta.map(function (v) {\n return beta * v;\n });\n var direction = delta.map(function (v) {\n return alpha * v;\n });\n var distance = calculateDistance(movement);\n return {\n velocities: velocities,\n velocity: velocity,\n distance: distance,\n direction: direction\n };\n}\n/**\r\n * Because IE doesn't support `Math.sign` function, so we use the polyfill version of the function.\r\n * This polyfill function is suggested by Mozilla:\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign#Polyfill\r\n * @param x target number\r\n */\n\nfunction sign(x) {\n if (Math.sign) return Math.sign(x);\n return Number(x > 0) - Number(x < 0) || +x;\n}\n\nfunction minMax(value, min, max) {\n return Math.max(min, Math.min(value, max));\n} // Based on @aholachek ;)\n// https://twitter.com/chpwn/status/285540192096497664\n// iOS constant = 0.55\n// https://medium.com/@nathangitter/building-fluid-interfaces-ios-swift-9732bb934bf5\n\n\nfunction rubberband2(distance, constant) {\n // default constant from the article is 0.7\n return Math.pow(distance, constant * 5);\n}\n\nfunction rubberband(distance, dimension, constant) {\n if (dimension === 0 || Math.abs(dimension) === Infinity) return rubberband2(distance, constant);\n return distance * dimension * constant / (dimension + constant * distance);\n}\n\nfunction rubberbandIfOutOfBounds(position, min, max, constant) {\n if (constant === void 0) {\n constant = 0.15;\n }\n\n if (constant === 0) return minMax(position, min, max);\n if (position < min) return -rubberband(min - position, max - min, constant) + min;\n if (position > max) return +rubberband(position - max, max - min, constant) + max;\n return position;\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 _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _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 _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\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\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction noop() {}\n/**\r\n * TODO Beware that only optimized cases are covered in tests =)\r\n * TODO Need to cover general case as well\r\n *\r\n * @param fns\r\n */\n\nfunction chainFns() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n if (fns.length === 0) return noop;\n if (fns.length === 1) return fns[0];\n return function () {\n var result;\n\n for (var _iterator = _createForOfIteratorHelperLoose(fns), _step; !(_step = _iterator()).done;) {\n var fn = _step.value;\n result = fn.apply(this, arguments) || result;\n }\n\n return result;\n };\n}\n/**\r\n * Expects a simple value or 2D vector (an array with 2 elements) and\r\n * always returns 2D vector. If simple value is passed, returns a\r\n * vector with this value as both coordinates.\r\n *\r\n * @param value\r\n */\n\nfunction ensureVector(value, fallback) {\n if (value === undefined) {\n if (fallback === undefined) {\n throw new Error('Must define fallback value if undefined is expected');\n }\n\n value = fallback;\n }\n\n if (Array.isArray(value)) return value;\n return [value, value];\n}\n/**\r\n * Helper for defining a default value\r\n *\r\n * @param value\r\n * @param fallback\r\n */\n\nfunction assignDefault(value, fallback) {\n return Object.assign({}, fallback, value || {});\n}\n/**\r\n * Resolves getters (functions) by calling them\r\n * If simple value is given it just passes through\r\n *\r\n * @param v\r\n */\n\nfunction valueFn(v) {\n if (typeof v === 'function') {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n // @ts-ignore\n return v.apply(void 0, args);\n } else {\n return v;\n }\n}\n\nfunction resolveWith(config, resolvers) {\n if (config === void 0) {\n config = {};\n }\n\n var result = {};\n\n for (var _i = 0, _Object$entries = Object.entries(resolvers); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n key = _Object$entries$_i[0],\n resolver = _Object$entries$_i[1];\n\n switch (typeof resolver) {\n case 'function':\n result[key] = resolver.call(result, config[key], key, config);\n break;\n\n case 'object':\n result[key] = resolveWith(config[key], resolver);\n break;\n\n case 'boolean':\n if (resolver) result[key] = config[key];\n break;\n }\n }\n\n return result;\n}\n\n/**\r\n * Whether the browser supports GestureEvent (ie Safari)\r\n * @returns true if the browser supports gesture event\r\n */\nfunction supportsGestureEvents() {\n try {\n // TODO [TS] possibly find GestureEvent definitions?\n // @ts-ignore: no type definitions for webkit GestureEvents\n return 'constructor' in GestureEvent;\n } catch (e) {\n return false;\n }\n}\nfunction supportsTouchEvents() {\n return typeof window !== 'undefined' && 'ontouchstart' in window;\n}\nfunction supportsPointerEvents() {\n return typeof window !== 'undefined' && 'onpointerdown' in window;\n}\n\nfunction getEventTouches(event) {\n if ('pointerId' in event) return null;\n return event.type === 'touchend' ? event.changedTouches : event.targetTouches;\n}\n\nfunction getTouchIds(event) {\n return Array.from(getEventTouches(event)).map(function (t) {\n return t.identifier;\n });\n}\nfunction getGenericEventData(event) {\n var buttons = 'buttons' in event ? event.buttons : 0;\n var shiftKey = event.shiftKey,\n altKey = event.altKey,\n metaKey = event.metaKey,\n ctrlKey = event.ctrlKey; // TODO check if this might create some overrides?\n\n return {\n buttons: buttons,\n shiftKey: shiftKey,\n altKey: altKey,\n metaKey: metaKey,\n ctrlKey: ctrlKey\n };\n}\n\nvar identity = function identity(xy) {\n return xy;\n};\n/**\r\n * Gets pointer event values.\r\n * @param event\r\n * @returns pointer event values\r\n */\n\n\nfunction getPointerEventValues(event, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n var touchEvents = getEventTouches(event);\n\n var _ref = touchEvents ? touchEvents[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n return transform([clientX, clientY]);\n}\n/**\r\n * Gets two touches event data\r\n * @param event\r\n * @returns two touches event data\r\n */\n\nfunction getTwoTouchesEventValues(event, pointerIds, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n var _Array$from$filter = Array.from(event.touches).filter(function (t) {\n return pointerIds.includes(t.identifier);\n }),\n A = _Array$from$filter[0],\n B = _Array$from$filter[1];\n\n if (!A || !B) throw Error(\"The event doesn't have two pointers matching the pointerIds\");\n var dx = B.clientX - A.clientX;\n var dy = B.clientY - A.clientY;\n var cx = (B.clientX + A.clientX) / 2;\n var cy = (B.clientY + A.clientY) / 2; // const e: any = 'nativeEvent' in event ? event.nativeEvent : event\n\n var distance = Math.hypot(dx, dy); // FIXME rotation has inconsistant values so we're not using it atm\n // const angle = (e.rotation as number) ?? -(Math.atan2(dx, dy) * 180) / Math.PI\n\n var angle = -(Math.atan2(dx, dy) * 180) / Math.PI;\n var values = transform([distance, angle]);\n var origin = transform([cx, cy]);\n return {\n values: values,\n origin: origin\n };\n}\n/**\r\n * Gets scroll event values\r\n * @param event\r\n * @returns scroll event values\r\n */\n\nfunction getScrollEventValues(event, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n // If the currentTarget is the window then we return the scrollX/Y position.\n // If not (ie the currentTarget is a DOM element), then we return scrollLeft/Top\n var _event$currentTarget = event.currentTarget,\n scrollX = _event$currentTarget.scrollX,\n scrollY = _event$currentTarget.scrollY,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollTop = _event$currentTarget.scrollTop;\n return transform([scrollX || scrollLeft || 0, scrollY || scrollTop || 0]);\n} // wheel delta defaults from https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js\n\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n/**\r\n * Gets wheel event values.\r\n * @param event\r\n * @returns wheel event values\r\n */\n\nfunction getWheelEventValues(event, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n var deltaX = event.deltaX,\n deltaY = event.deltaY,\n deltaMode = event.deltaMode; // normalize wheel values, especially for Firefox\n\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n\n return transform([deltaX, deltaY]);\n}\n/**\r\n * Gets webkit gesture event values.\r\n * @param event\r\n * @returns webkit gesture event values\r\n */\n\nfunction getWebkitGestureEventValues(event, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n return transform([event.scale, event.rotation]);\n}\n\nvar DEFAULT_DRAG_DELAY = 180;\nvar DEFAULT_RUBBERBAND = 0.15;\nvar DEFAULT_SWIPE_VELOCITY = 0.5;\nvar DEFAULT_SWIPE_DISTANCE = 50;\nvar DEFAULT_SWIPE_DURATION = 250;\nvar InternalGestureOptionsNormalizers = {\n threshold: function threshold(value) {\n if (value === void 0) {\n value = 0;\n }\n\n return ensureVector(value);\n },\n rubberband: function rubberband(value) {\n if (value === void 0) {\n value = 0;\n }\n\n switch (value) {\n case true:\n return ensureVector(DEFAULT_RUBBERBAND);\n\n case false:\n return ensureVector(0);\n\n default:\n return ensureVector(value);\n }\n },\n enabled: function enabled(value) {\n if (value === void 0) {\n value = true;\n }\n\n return value;\n },\n triggerAllEvents: function triggerAllEvents(value) {\n if (value === void 0) {\n value = false;\n }\n\n return value;\n },\n initial: function initial(value) {\n if (value === void 0) {\n value = 0;\n }\n\n if (typeof value === 'function') return value;\n return ensureVector(value);\n },\n transform: true\n};\n\nvar InternalCoordinatesOptionsNormalizers = /*#__PURE__*/_extends({}, InternalGestureOptionsNormalizers, {\n axis: true,\n lockDirection: function lockDirection(value) {\n if (value === void 0) {\n value = false;\n }\n\n return value;\n },\n bounds: function bounds(value) {\n if (value === void 0) {\n value = {};\n }\n\n if (typeof value === 'function') return function (state) {\n return InternalCoordinatesOptionsNormalizers.bounds(value(state));\n };\n var _value2 = value,\n _value2$left = _value2.left,\n left = _value2$left === void 0 ? -Infinity : _value2$left,\n _value2$right = _value2.right,\n right = _value2$right === void 0 ? Infinity : _value2$right,\n _value2$top = _value2.top,\n top = _value2$top === void 0 ? -Infinity : _value2$top,\n _value2$bottom = _value2.bottom,\n bottom = _value2$bottom === void 0 ? Infinity : _value2$bottom;\n return [[left, right], [top, bottom]];\n }\n});\n\nvar isBrowser = typeof window !== 'undefined' && window.document && window.document.createElement;\nvar InternalGenericOptionsNormalizers = {\n enabled: function enabled(value) {\n if (value === void 0) {\n value = true;\n }\n\n return value;\n },\n domTarget: true,\n window: /*#__PURE__*/function (_window) {\n function window(_x) {\n return _window.apply(this, arguments);\n }\n\n window.toString = function () {\n return _window.toString();\n };\n\n return window;\n }(function (value) {\n if (value === void 0) {\n value = isBrowser ? window : undefined;\n }\n\n return value;\n }),\n eventOptions: function eventOptions(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$passive = _ref.passive,\n passive = _ref$passive === void 0 ? true : _ref$passive,\n _ref$capture = _ref.capture,\n capture = _ref$capture === void 0 ? false : _ref$capture;\n\n return {\n passive: passive,\n capture: capture\n };\n },\n transform: true\n};\n\nvar InternalDistanceAngleOptionsNormalizers = /*#__PURE__*/_extends({}, InternalGestureOptionsNormalizers, {\n bounds: function bounds(_value, _key, _ref2) {\n var _ref2$distanceBounds = _ref2.distanceBounds,\n distanceBounds = _ref2$distanceBounds === void 0 ? {} : _ref2$distanceBounds,\n _ref2$angleBounds = _ref2.angleBounds,\n angleBounds = _ref2$angleBounds === void 0 ? {} : _ref2$angleBounds;\n\n var _distanceBounds = function _distanceBounds(state) {\n var D = assignDefault(valueFn(distanceBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [D.min, D.max];\n };\n\n var _angleBounds = function _angleBounds(state) {\n var A = assignDefault(valueFn(angleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [A.min, A.max];\n };\n\n if (typeof distanceBounds !== 'function' && typeof angleBounds !== 'function') return [_distanceBounds(), _angleBounds()];\n return function (state) {\n return [_distanceBounds(state), _angleBounds(state)];\n };\n }\n});\n\nvar InternalDragOptionsNormalizers = /*#__PURE__*/_extends({}, InternalCoordinatesOptionsNormalizers, {\n useTouch: function useTouch(value) {\n if (value === void 0) {\n value = false;\n }\n\n var supportsTouch = supportsTouchEvents();\n var supportsPointer = supportsPointerEvents();\n if (value && supportsTouch) return true;\n if (supportsTouch && !supportsPointer) return true;\n return false;\n },\n experimental_preventWindowScrollY: function experimental_preventWindowScrollY(value) {\n if (value === void 0) {\n value = false;\n }\n\n return value;\n },\n threshold: function threshold(v, _k, _ref3) {\n var _ref3$filterTaps = _ref3.filterTaps,\n filterTaps = _ref3$filterTaps === void 0 ? false : _ref3$filterTaps,\n _ref3$lockDirection = _ref3.lockDirection,\n lockDirection = _ref3$lockDirection === void 0 ? false : _ref3$lockDirection,\n _ref3$axis = _ref3.axis,\n axis = _ref3$axis === void 0 ? undefined : _ref3$axis;\n var A = ensureVector(v, filterTaps ? 3 : lockDirection ? 1 : axis ? 1 : 0);\n this.filterTaps = filterTaps;\n return A;\n },\n swipeVelocity: function swipeVelocity(v) {\n if (v === void 0) {\n v = DEFAULT_SWIPE_VELOCITY;\n }\n\n return ensureVector(v);\n },\n swipeDistance: function swipeDistance(v) {\n if (v === void 0) {\n v = DEFAULT_SWIPE_DISTANCE;\n }\n\n return ensureVector(v);\n },\n swipeDuration: function swipeDuration(value) {\n if (value === void 0) {\n value = DEFAULT_SWIPE_DURATION;\n }\n\n return value;\n },\n delay: function delay(value) {\n if (value === void 0) {\n value = 0;\n }\n\n switch (value) {\n case true:\n return DEFAULT_DRAG_DELAY;\n\n case false:\n return 0;\n\n default:\n return value;\n }\n }\n});\n\nfunction getInternalGenericOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n // TODO warn when passive is set to true and domTarget is undefined\n return resolveWith(config, InternalGenericOptionsNormalizers);\n}\nfunction getInternalCoordinatesOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalCoordinatesOptionsNormalizers);\n}\nfunction getInternalDistanceAngleOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalDistanceAngleOptionsNormalizers);\n}\nfunction getInternalDragOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalDragOptionsNormalizers);\n}\n\nfunction _buildMoveConfig(_ref) {\n var domTarget = _ref.domTarget,\n eventOptions = _ref.eventOptions,\n window = _ref.window,\n enabled = _ref.enabled,\n rest = _objectWithoutPropertiesLoose(_ref, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.move = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction _buildHoverConfig(_ref2) {\n var domTarget = _ref2.domTarget,\n eventOptions = _ref2.eventOptions,\n window = _ref2.window,\n enabled = _ref2.enabled,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.hover = _extends({\n enabled: true\n }, rest);\n return opts;\n}\nfunction _buildDragConfig(_ref3) {\n var domTarget = _ref3.domTarget,\n eventOptions = _ref3.eventOptions,\n window = _ref3.window,\n enabled = _ref3.enabled,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.drag = getInternalDragOptions(rest);\n return opts;\n}\nfunction _buildPinchConfig(_ref4) {\n var domTarget = _ref4.domTarget,\n eventOptions = _ref4.eventOptions,\n window = _ref4.window,\n enabled = _ref4.enabled,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.pinch = getInternalDistanceAngleOptions(rest);\n return opts;\n}\nfunction _buildScrollConfig(_ref5) {\n var domTarget = _ref5.domTarget,\n eventOptions = _ref5.eventOptions,\n window = _ref5.window,\n enabled = _ref5.enabled,\n rest = _objectWithoutPropertiesLoose(_ref5, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.scroll = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction _buildWheelConfig(_ref6) {\n var domTarget = _ref6.domTarget,\n eventOptions = _ref6.eventOptions,\n window = _ref6.window,\n enabled = _ref6.enabled,\n rest = _objectWithoutPropertiesLoose(_ref6, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.wheel = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction buildComplexConfig(config, actions) {\n if (config === void 0) {\n config = {};\n }\n\n if (actions === void 0) {\n actions = new Set();\n }\n\n var _config = config,\n drag = _config.drag,\n wheel = _config.wheel,\n move = _config.move,\n scroll = _config.scroll,\n pinch = _config.pinch,\n hover = _config.hover,\n eventOptions = _config.eventOptions,\n window = _config.window,\n transform = _config.transform,\n domTarget = _config.domTarget,\n enabled = _config.enabled;\n var mergedConfig = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n transform: transform,\n window: window,\n enabled: enabled\n });\n if (actions.has('onDrag')) mergedConfig.drag = getInternalDragOptions(drag);\n if (actions.has('onWheel')) mergedConfig.wheel = getInternalCoordinatesOptions(wheel);\n if (actions.has('onScroll')) mergedConfig.scroll = getInternalCoordinatesOptions(scroll);\n if (actions.has('onMove')) mergedConfig.move = getInternalCoordinatesOptions(move);\n if (actions.has('onPinch')) mergedConfig.pinch = getInternalDistanceAngleOptions(pinch);\n if (actions.has('onHover')) mergedConfig.hover = _extends({\n enabled: true\n }, hover);\n return mergedConfig;\n}\n\nfunction getInitial(mixed) {\n return _extends({\n _active: false,\n _blocked: false,\n _intentional: [false, false],\n _movement: [0, 0],\n _initial: [0, 0],\n _bounds: [[-Infinity, Infinity], [-Infinity, Infinity]],\n _threshold: [0, 0],\n _lastEventType: undefined,\n _dragStarted: false,\n _dragPreventScroll: false,\n _dragIsTap: true,\n _dragDelayed: false,\n event: undefined,\n intentional: false,\n values: [0, 0],\n velocities: [0, 0],\n delta: [0, 0],\n movement: [0, 0],\n offset: [0, 0],\n lastOffset: [0, 0],\n direction: [0, 0],\n initial: [0, 0],\n previous: [0, 0],\n first: false,\n last: false,\n active: false,\n timeStamp: 0,\n startTime: 0,\n elapsedTime: 0,\n cancel: noop,\n canceled: false,\n memo: undefined,\n args: undefined\n }, mixed);\n}\n\nfunction getInitialState() {\n var shared = {\n hovering: false,\n scrolling: false,\n wheeling: false,\n dragging: false,\n moving: false,\n pinching: false,\n touches: 0,\n buttons: 0,\n down: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n ctrlKey: false,\n locked: false\n };\n var drag = getInitial({\n _pointerId: undefined,\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0,\n tap: false,\n swipe: [0, 0]\n });\n var pinch = getInitial({\n // @ts-expect-error when used _pointerIds we can assert its type will be [number, number]\n _pointerIds: [],\n da: [0, 0],\n vdva: [0, 0],\n // @ts-expect-error origin can never be passed as undefined in userland\n origin: undefined,\n turns: 0\n });\n var wheel = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n var move = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n var scroll = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n return {\n shared: shared,\n drag: drag,\n pinch: pinch,\n wheel: wheel,\n move: move,\n scroll: scroll\n };\n}\n\nvar RecognizersMap = /*#__PURE__*/new Map();\n\nvar identity$1 = function identity(xy) {\n return xy;\n};\n/**\r\n * @private\r\n * Recognizer abstract class.\r\n */\n\n\nvar Recognizer = /*#__PURE__*/function () {\n /**\r\n * Creates an instance of a gesture recognizer.\r\n * @param stateKey drag, move, pinch, etc.\r\n * @param controller the controller attached to the gesture\r\n * @param [args] the args that should be passed to the gesture handler\r\n */\n function Recognizer(controller, args) {\n var _this = this;\n\n if (args === void 0) {\n args = [];\n }\n\n this.controller = controller;\n this.args = args;\n this.debounced = true; // Convenience method to set a timeout for a given gesture\n\n this.setTimeout = function (callback, ms) {\n var _window;\n\n if (ms === void 0) {\n ms = 140;\n }\n\n clearTimeout(_this.controller.timeouts[_this.stateKey]);\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n _this.controller.timeouts[_this.stateKey] = (_window = window).setTimeout.apply(_window, [callback, ms].concat(args));\n }; // Convenience method to clear a timeout for a given gesture\n\n\n this.clearTimeout = function () {\n clearTimeout(_this.controller.timeouts[_this.stateKey]);\n };\n /**\r\n * Fires the gesture handler\r\n */\n\n\n this.fireGestureHandler = function (forceFlag) {\n if (forceFlag === void 0) {\n forceFlag = false;\n }\n\n /**\r\n * If the gesture has been blocked (this can happen when the gesture has started in an unwanted direction),\r\n * clean everything and don't do anything.\r\n */\n if (_this.state._blocked) {\n // we need debounced gestures to end by themselves\n if (!_this.debounced) {\n _this.state._active = false;\n\n _this.clean();\n }\n\n return null;\n } // If the gesture has no intentional dimension, don't fire the handler.\n\n\n if (!forceFlag && !_this.state.intentional && !_this.config.triggerAllEvents) return null;\n\n if (_this.state.intentional) {\n var prev_active = _this.state.active;\n var next_active = _this.state._active;\n _this.state.active = next_active;\n _this.state.first = next_active && !prev_active;\n _this.state.last = prev_active && !next_active;\n _this.controller.state.shared[_this.ingKey] = next_active; // Sets dragging, pinching, etc. to the gesture active state\n }\n\n var touches = _this.controller.pointerIds.size || _this.controller.touchIds.size;\n var down = _this.controller.state.shared.buttons > 0 || touches > 0;\n\n var state = _extends({}, _this.controller.state.shared, _this.state, _this.mapStateValues(_this.state), {\n locked: !!document.pointerLockElement,\n touches: touches,\n down: down\n }); // @ts-expect-error\n\n\n var newMemo = _this.handler(state); // Sets memo to the returned value of the handler (unless it's not undefined)\n\n\n _this.state.memo = newMemo !== void 0 ? newMemo : _this.state.memo;\n return state;\n };\n\n this.controller = controller;\n this.args = args;\n } // Returns the gesture config\n\n\n var _proto = Recognizer.prototype;\n\n // Convenience method to update the shared state\n _proto.updateSharedState = function updateSharedState(sharedState) {\n Object.assign(this.controller.state.shared, sharedState);\n } // Convenience method to update the gesture state\n ;\n\n _proto.updateGestureState = function updateGestureState(gestureState) {\n Object.assign(this.state, gestureState);\n }\n /**\r\n * Returns state properties depending on the movement and state.\r\n *\r\n * Should be overriden for custom behavior, doesn't do anything in the implementation\r\n * below.\r\n */\n ;\n\n _proto.checkIntentionality = function checkIntentionality(_intentional, _movement) {\n return {\n _intentional: _intentional,\n _blocked: false\n };\n }\n /**\r\n * Returns basic movement properties for the gesture based on the next values and current state.\r\n */\n ;\n\n _proto.getMovement = function getMovement(values) {\n var rubberband = this.config.rubberband;\n var _this$state = this.state,\n _bounds = _this$state._bounds,\n _initial = _this$state._initial,\n _active = _this$state._active,\n wasIntentional = _this$state._intentional,\n lastOffset = _this$state.lastOffset,\n prevMovement = _this$state.movement,\n _T = _this$state._threshold;\n var M = this.getInternalMovement(values, this.state);\n var i0 = wasIntentional[0] === false ? getIntentionalDisplacement(M[0], _T[0]) : wasIntentional[0];\n var i1 = wasIntentional[1] === false ? getIntentionalDisplacement(M[1], _T[1]) : wasIntentional[1]; // Get gesture specific state properties based on intentionality and movement.\n\n var intentionalityCheck = this.checkIntentionality([i0, i1], M);\n\n if (intentionalityCheck._blocked) {\n return _extends({}, intentionalityCheck, {\n _movement: M,\n delta: [0, 0]\n });\n }\n\n var _intentional = intentionalityCheck._intentional;\n var _movement = M;\n /**\r\n * The movement sent to the handler has 0 in its dimensions when intentionality is false.\r\n * It is calculated from the actual movement minus the threshold.\r\n */\n\n var movement = [_intentional[0] !== false ? M[0] - _intentional[0] : 0, _intentional[1] !== false ? M[1] - _intentional[1] : 0];\n var offset = addV(movement, lastOffset);\n /**\r\n * Rubberband should be 0 when the gesture is no longer active, so that movement\r\n * and offset can return within their bounds.\r\n */\n\n var _rubberband = _active ? rubberband : [0, 0];\n\n movement = computeRubberband(_bounds, addV(movement, _initial), _rubberband);\n return _extends({}, intentionalityCheck, {\n intentional: _intentional[0] !== false || _intentional[1] !== false,\n _initial: _initial,\n _movement: _movement,\n movement: movement,\n values: values,\n offset: computeRubberband(_bounds, offset, _rubberband),\n delta: subV(movement, prevMovement)\n });\n } // Cleans the gesture. Can be overriden by gestures.\n ;\n\n _proto.clean = function clean() {\n this.clearTimeout();\n };\n\n _createClass(Recognizer, [{\n key: \"config\",\n get: function get() {\n return this.controller.config[this.stateKey];\n } // Is the gesture enabled\n\n }, {\n key: \"enabled\",\n get: function get() {\n return this.controller.config.enabled && this.config.enabled;\n } // Returns the controller state for a given gesture\n\n }, {\n key: \"state\",\n get: function get() {\n return this.controller.state[this.stateKey];\n } // Returns the gesture handler\n\n }, {\n key: \"handler\",\n get: function get() {\n return this.controller.handlers[this.stateKey];\n }\n }, {\n key: \"transform\",\n get: function get() {\n return this.config.transform || this.controller.config.transform || identity$1;\n }\n }]);\n\n return Recognizer;\n}(); //--------------------------------------------\n\nfunction getIntentionalDisplacement(movement, threshold) {\n if (Math.abs(movement) >= threshold) {\n return sign(movement) * threshold;\n } else {\n return false;\n }\n}\n\nfunction computeRubberband(bounds, _ref, _ref2) {\n var Vx = _ref[0],\n Vy = _ref[1];\n var Rx = _ref2[0],\n Ry = _ref2[1];\n var _bounds$ = bounds[0],\n X1 = _bounds$[0],\n X2 = _bounds$[1],\n _bounds$2 = bounds[1],\n Y1 = _bounds$2[0],\n Y2 = _bounds$2[1];\n return [rubberbandIfOutOfBounds(Vx, X1, X2, Rx), rubberbandIfOutOfBounds(Vy, Y1, Y2, Ry)];\n}\n/**\r\n * Returns a generic, common payload for all gestures from an event.\r\n */\n\n\nfunction getGenericPayload(_ref3, event, isStartEvent) {\n var state = _ref3.state;\n var timeStamp = event.timeStamp,\n _lastEventType = event.type;\n var previous = state.values;\n var elapsedTime = isStartEvent ? 0 : timeStamp - state.startTime;\n return {\n _lastEventType: _lastEventType,\n event: event,\n timeStamp: timeStamp,\n elapsedTime: elapsedTime,\n previous: previous\n };\n}\n/**\r\n * Returns the reinitialized start state for the gesture.\r\n * Should be common to all gestures.\r\n */\n\nfunction getStartGestureState(_ref4, values, event, initial) {\n var state = _ref4.state,\n config = _ref4.config,\n stateKey = _ref4.stateKey,\n args = _ref4.args,\n transform = _ref4.transform;\n var offset = state.offset;\n var startTime = event.timeStamp;\n var initialFn = config.initial,\n bounds = config.bounds,\n threshold = config.threshold; // the _threshold is the difference between a [0,0] offset converted to\n // its new space coordinates\n\n var _threshold = subV(transform(threshold), transform([0, 0])).map(Math.abs);\n\n var _state = _extends({}, getInitialState()[stateKey], {\n _active: true,\n args: args,\n values: values,\n initial: initial != null ? initial : values,\n _threshold: _threshold,\n offset: offset,\n lastOffset: offset,\n startTime: startTime\n });\n\n return _extends({}, _state, {\n _initial: valueFn(initialFn, _state),\n _bounds: valueFn(bounds, _state)\n });\n}\n\n/**\r\n * The controller will keep track of the state for all gestures and also keep\r\n * track of timeouts, and window listeners.\r\n */\n\nvar Controller = function Controller(classes) {\n var _this = this;\n\n this.classes = classes;\n this.pointerIds = new Set(); // register Pointer Events pointerIds\n\n this.touchIds = new Set(); // register Touch Events identifiers\n\n this.supportsTouchEvents = supportsTouchEvents();\n this.supportsGestureEvents = supportsGestureEvents();\n\n this.bind = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var bindings = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(_this.classes), _step; !(_step = _iterator()).done;) {\n var RecognizerClass = _step.value;\n new RecognizerClass(_this, args).addBindings(bindings);\n } // // we also add event bindings for native handlers\n\n\n var _loop = function _loop(eventKey) {\n addBindings(bindings, eventKey, function (event) {\n return _this.nativeRefs[eventKey](_extends({}, _this.state.shared, {\n event: event,\n args: args\n }));\n });\n };\n\n for (var eventKey in _this.nativeRefs) {\n _loop(eventKey);\n }\n\n if (_this.config.domTarget) {\n // If config.domTarget is set we add event listeners to it and return the clean function.\n return updateDomListeners(_this, bindings);\n } else {\n // If not, we return an object that contains gesture handlers mapped to react handler event keys.\n return getPropsListener(_this, bindings);\n }\n };\n\n this.effect = function () {\n if (_this.config.domTarget) _this.bind();\n return _this.clean;\n };\n /**\r\n * Function ran on component unmount: cleans timeouts and removes dom listeners set by the bind function.\r\n */\n\n\n this.clean = function () {\n var domTarget = getDomTargetFromConfig(_this.config);\n var eventOptions = _this.config.eventOptions;\n if (domTarget) removeListeners(domTarget, takeAll(_this.domListeners), eventOptions);\n Object.values(_this.timeouts).forEach(clearTimeout);\n clearAllWindowListeners(_this);\n };\n\n this.classes = classes;\n this.state = getInitialState();\n this.timeouts = {};\n this.domListeners = [];\n this.windowListeners = {};\n};\nfunction addEventIds(controller, event) {\n if ('pointerId' in event) {\n controller.pointerIds.add(event.pointerId);\n } else {\n controller.touchIds = new Set(getTouchIds(event));\n }\n}\nfunction removeEventIds(controller, event) {\n if ('pointerId' in event) {\n controller.pointerIds[\"delete\"](event.pointerId);\n } else {\n getTouchIds(event).forEach(function (id) {\n return controller.touchIds[\"delete\"](id);\n });\n }\n}\nfunction clearAllWindowListeners(controller) {\n var _controller$config = controller.config,\n el = _controller$config.window,\n eventOptions = _controller$config.eventOptions,\n windowListeners = controller.windowListeners;\n if (!el) return;\n\n for (var stateKey in windowListeners) {\n var handlers = windowListeners[stateKey];\n removeListeners(el, handlers, eventOptions);\n }\n\n controller.windowListeners = {};\n}\nfunction clearWindowListeners(_ref, stateKey, options) {\n var config = _ref.config,\n windowListeners = _ref.windowListeners;\n\n if (options === void 0) {\n options = config.eventOptions;\n }\n\n if (!config.window) return;\n removeListeners(config.window, windowListeners[stateKey], options);\n delete windowListeners[stateKey];\n}\nfunction updateWindowListeners(_ref2, stateKey, listeners, options) {\n var config = _ref2.config,\n windowListeners = _ref2.windowListeners;\n\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (options === void 0) {\n options = config.eventOptions;\n }\n\n if (!config.window) return;\n removeListeners(config.window, windowListeners[stateKey], options);\n addListeners(config.window, windowListeners[stateKey] = listeners, options);\n}\n\nfunction updateDomListeners(_ref3, bindings) {\n var config = _ref3.config,\n domListeners = _ref3.domListeners;\n var domTarget = getDomTargetFromConfig(config);\n if (!domTarget) throw new Error('domTarget must be defined');\n var eventOptions = config.eventOptions;\n removeListeners(domTarget, takeAll(domListeners), eventOptions);\n\n for (var _i = 0, _Object$entries = Object.entries(bindings); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n key = _Object$entries$_i[0],\n fns = _Object$entries$_i[1];\n var name = key.slice(2).toLowerCase();\n domListeners.push([name, chainFns.apply(void 0, fns)]);\n }\n\n addListeners(domTarget, domListeners, eventOptions);\n}\n\nfunction getPropsListener(_ref4, bindings) {\n var config = _ref4.config;\n var props = {};\n var captureString = config.eventOptions.capture ? 'Capture' : '';\n\n for (var _i2 = 0, _Object$entries2 = Object.entries(bindings); _i2 < _Object$entries2.length; _i2++) {\n var _Object$entries2$_i = _Object$entries2[_i2],\n event = _Object$entries2$_i[0],\n fns = _Object$entries2$_i[1];\n var fnsArray = Array.isArray(fns) ? fns : [fns];\n var key = event + captureString;\n props[key] = chainFns.apply(void 0, fnsArray);\n }\n\n return props;\n}\n\nfunction takeAll(array) {\n if (array === void 0) {\n array = [];\n }\n\n return array.splice(0, array.length);\n}\n\nfunction getDomTargetFromConfig(_ref5) {\n var domTarget = _ref5.domTarget;\n return domTarget && 'current' in domTarget ? domTarget.current : domTarget;\n}\n/**\r\n * bindings is an object which keys match ReactEventHandlerKeys.\r\n * Since a recognizer might want to bind a handler function to an event key already used by a previously\r\n * added recognizer, we need to make sure that each event key is an array of all the functions mapped for\r\n * that key.\r\n */\n\n\nfunction addBindings(bindings, name, fn) {\n if (!bindings[name]) bindings[name] = [];\n bindings[name].push(fn);\n}\n\nfunction addListeners(el, listeners, options) {\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (options === void 0) {\n options = {};\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(listeners), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n eventName = _step2$value[0],\n eventHandler = _step2$value[1];\n el.addEventListener(eventName, eventHandler, options);\n }\n}\n\nfunction removeListeners(el, listeners, options) {\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (options === void 0) {\n options = {};\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(listeners), _step3; !(_step3 = _iterator3()).done;) {\n var _step3$value = _step3.value,\n eventName = _step3$value[0],\n eventHandler = _step3$value[1];\n el.removeEventListener(eventName, eventHandler, options);\n }\n}\n\n/* eslint-disable react-hooks/exhaustive-deps */\n/**\r\n * Utility hook called by all gesture hooks and that will be responsible for the internals.\r\n *\r\n * @param handlers\r\n * @param classes\r\n * @param config\r\n * @param nativeHandlers - native handlers such as onClick, onMouseDown, etc.\r\n */\n\nfunction useRecognizers(handlers, config, nativeHandlers) {\n if (nativeHandlers === void 0) {\n nativeHandlers = {};\n }\n\n var classes = resolveClasses(handlers);\n var controller = React.useMemo(function () {\n return new Controller(classes);\n }, []);\n controller.config = config;\n controller.handlers = handlers;\n controller.nativeRefs = nativeHandlers;\n React.useEffect(controller.effect, []); // @ts-ignore\n\n if (controller.config.domTarget) return deprecationNoticeForDomTarget; // @ts-ignore\n\n return controller.bind;\n}\n\nfunction deprecationNoticeForDomTarget() {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\"Deprecation notice: When the `domTarget` option is specified, you don't need to write `useEffect(bind, [bind])` anymore: event binding is now made handled internally to this lib.\\n\\nNext version won't return anything when `domTarget` is provided, therefore your code will break if you try to call `useEffect`.\");\n }\n}\n\nfunction resolveClasses(internalHandlers) {\n var classes = new Set();\n if (internalHandlers.drag) classes.add(RecognizersMap.get('drag'));\n if (internalHandlers.wheel) classes.add(RecognizersMap.get('wheel'));\n if (internalHandlers.scroll) classes.add(RecognizersMap.get('scroll'));\n if (internalHandlers.move) classes.add(RecognizersMap.get('move'));\n if (internalHandlers.pinch) classes.add(RecognizersMap.get('pinch'));\n if (internalHandlers.hover) classes.add(RecognizersMap.get('hover'));\n return classes;\n}\n\n/**\r\n * @private\r\n * Abstract class for coordinates-based gesture recongizers\r\n */\n\nvar CoordinatesRecognizer = /*#__PURE__*/function (_Recognizer) {\n _inheritsLoose(CoordinatesRecognizer, _Recognizer);\n\n function CoordinatesRecognizer() {\n return _Recognizer.apply(this, arguments) || this;\n }\n\n var _proto = CoordinatesRecognizer.prototype;\n\n /**\r\n * Returns the real movement (without taking intentionality into account)\r\n */\n _proto.getInternalMovement = function getInternalMovement(values, state) {\n return subV(values, state.initial);\n }\n /**\r\n * In coordinates-based gesture, this function will detect the first intentional axis,\r\n * lock the gesture axis if lockDirection is specified in the config, block the gesture\r\n * if the first intentional axis doesn't match the specified axis in config.\r\n */\n ;\n\n _proto.checkIntentionality = function checkIntentionality(_intentional, _movement) {\n if (_intentional[0] === false && _intentional[1] === false) {\n return {\n _intentional: _intentional,\n axis: this.state.axis\n };\n }\n\n var _movement$map = _movement.map(Math.abs),\n absX = _movement$map[0],\n absY = _movement$map[1];\n\n var axis = this.state.axis || (absX > absY ? 'x' : absX < absY ? 'y' : undefined);\n if (!this.config.axis && !this.config.lockDirection) return {\n _intentional: _intentional,\n _blocked: false,\n axis: axis\n };\n if (!axis) return {\n _intentional: [false, false],\n _blocked: false,\n axis: axis\n };\n if (!!this.config.axis && axis !== this.config.axis) return {\n _intentional: _intentional,\n _blocked: true,\n axis: axis\n };\n _intentional[axis === 'x' ? 1 : 0] = false;\n return {\n _intentional: _intentional,\n _blocked: false,\n axis: axis\n };\n };\n\n _proto.getKinematics = function getKinematics(values, event) {\n var state = this.getMovement(values);\n\n if (!state._blocked) {\n var dt = event.timeStamp - this.state.timeStamp;\n Object.assign(state, calculateAllKinematics(state.movement, state.delta, dt));\n }\n\n return state;\n };\n\n _proto.mapStateValues = function mapStateValues(state) {\n return {\n xy: state.values,\n vxvy: state.velocities\n };\n };\n\n return CoordinatesRecognizer;\n}(Recognizer);\n\nvar TAP_DISTANCE_THRESHOLD = 3;\n\nfunction persistEvent(event) {\n 'persist' in event && typeof event.persist === 'function' && event.persist();\n}\n\nvar DragRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(DragRecognizer, _CoordinatesRecognize);\n\n function DragRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'dragging';\n _this.stateKey = 'drag'; // TODO add back when setPointerCapture is widely wupported\n // https://caniuse.com/#search=setPointerCapture\n\n _this.setPointerCapture = function (event) {\n // don't perform pointere capture when user wants to use touch events or\n // when a pointerLockElement exists as this would throw an error\n if (_this.config.useTouch || document.pointerLockElement) return;\n var target = event.target,\n pointerId = event.pointerId;\n\n if (target && 'setPointerCapture' in target) {\n // this would work in the DOM but doesn't with react three fiber\n // target.addEventListener('pointermove', this.onDragChange, this.controller.config.eventOptions)\n // @ts-expect-error\n target.setPointerCapture(pointerId);\n }\n\n _this.updateGestureState({\n _dragTarget: target,\n _dragPointerId: pointerId\n });\n };\n\n _this.releasePointerCapture = function () {\n if (_this.config.useTouch || document.pointerLockElement) return;\n var _this$state = _this.state,\n _dragTarget = _this$state._dragTarget,\n _dragPointerId = _this$state._dragPointerId;\n\n if (_dragPointerId && _dragTarget && 'releasePointerCapture' in _dragTarget) {\n // this would work in the DOM but doesn't with react three fiber\n // target.removeEventListener('pointermove', this.onDragChange, this.controller.config.eventOptions)\n if (!('hasPointerCapture' in _dragTarget) || _dragTarget.hasPointerCapture(_dragPointerId)) try {\n _dragTarget.releasePointerCapture(_dragPointerId);\n } catch (e) {}\n }\n };\n\n _this.preventScroll = function (event) {\n if (_this.state._dragPreventScroll && event.cancelable) {\n event.preventDefault();\n }\n };\n\n _this.getEventId = function (event) {\n if (_this.config.useTouch) return event.changedTouches[0].identifier;\n return event.pointerId;\n };\n\n _this.isValidEvent = function (event) {\n // if we were using pointer events only event.isPrimary === 1 would suffice\n return _this.state._pointerId === _this.getEventId(event);\n };\n\n _this.shouldPreventWindowScrollY = _this.config.experimental_preventWindowScrollY && _this.controller.supportsTouchEvents;\n\n _this.setUpWindowScrollDetection = function (event) {\n persistEvent(event); // we add window listeners that will prevent the scroll when the user has started dragging\n\n updateWindowListeners(_this.controller, _this.stateKey, [['touchmove', _this.preventScroll], ['touchend', _this.clean.bind(_assertThisInitialized(_this))], ['touchcancel', _this.clean.bind(_assertThisInitialized(_this))]], {\n passive: false\n });\n\n _this.setTimeout(_this.startDrag.bind(_assertThisInitialized(_this)), 250, event);\n };\n\n _this.setUpDelayedDragTrigger = function (event) {\n _this.state._dragDelayed = true;\n persistEvent(event);\n\n _this.setTimeout(_this.startDrag.bind(_assertThisInitialized(_this)), _this.config.delay, event);\n };\n\n _this.setStartState = function (event) {\n var values = getPointerEventValues(event, _this.transform);\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n _pointerId: _this.getEventId(event)\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n };\n\n _this.onDragStart = function (event) {\n addEventIds(_this.controller, event);\n if (!_this.enabled || _this.state._active) return;\n\n _this.setStartState(event);\n\n _this.setPointerCapture(event);\n\n if (_this.shouldPreventWindowScrollY) _this.setUpWindowScrollDetection(event);else if (_this.config.delay > 0) _this.setUpDelayedDragTrigger(event);else _this.startDrag(event, true); // we pass the values to the startDrag event\n };\n\n _this.onDragChange = function (event) {\n if ( // if the gesture was canceled or\n _this.state.canceled || // if onDragStart wasn't fired or\n !_this.state._active || // if the event pointerId doesn't match the one that initiated the drag\n !_this.isValidEvent(event) || // if the event has the same timestamp as the previous event\n // note that checking type equality is ONLY for tests ¯\\_(ツ)_/¯\n _this.state._lastEventType === event.type && event.timeStamp === _this.state.timeStamp) return;\n var values;\n\n if (document.pointerLockElement) {\n var movementX = event.movementX,\n movementY = event.movementY;\n values = addV(_this.transform([movementX, movementY]), _this.state.values);\n } else values = getPointerEventValues(event, _this.transform);\n\n var kinematics = _this.getKinematics(values, event); // if startDrag hasn't fired\n\n\n if (!_this.state._dragStarted) {\n // If the gesture isn't active then respond to the event only if\n // it's been delayed via the `delay` option, in which case start\n // the gesture immediately.\n if (_this.state._dragDelayed) {\n _this.startDrag(event);\n\n return;\n } // if the user wants to prevent vertical window scroll when user starts dragging\n\n\n if (_this.shouldPreventWindowScrollY) {\n if (!_this.state._dragPreventScroll && kinematics.axis) {\n // if the user is dragging horizontally then we should allow the drag\n if (kinematics.axis === 'x') {\n _this.startDrag(event);\n } else {\n _this.state._active = false;\n return;\n }\n } else return;\n } else return;\n }\n\n var genericEventData = getGenericEventData(event);\n\n _this.updateSharedState(genericEventData);\n\n var genericPayload = getGenericPayload(_assertThisInitialized(_this), event); // This verifies if the drag can be assimilated to a tap by checking\n // if the real distance of the drag (ie not accounting for the threshold) is\n // greater than the TAP_DISTANCE_THRESHOLD.\n\n var realDistance = calculateDistance(kinematics._movement);\n var _dragIsTap = _this.state._dragIsTap;\n if (_dragIsTap && realDistance >= TAP_DISTANCE_THRESHOLD) _dragIsTap = false;\n\n _this.updateGestureState(_extends({}, genericPayload, kinematics, {\n _dragIsTap: _dragIsTap\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onDragEnd = function (event) {\n removeEventIds(_this.controller, event); // if the event pointerId doesn't match the one that initiated the drag\n // we don't want to end the drag\n\n if (!_this.isValidEvent(event)) return;\n\n _this.clean(); // if the gesture is no longer active (ie canceled)\n // don't do anything\n\n\n if (!_this.state._active) return;\n _this.state._active = false;\n var tap = _this.state._dragIsTap;\n var _this$state$velocitie = _this.state.velocities,\n vx = _this$state$velocitie[0],\n vy = _this$state$velocitie[1];\n var _this$state$movement = _this.state.movement,\n mx = _this$state$movement[0],\n my = _this$state$movement[1];\n var _this$state$_intentio = _this.state._intentional,\n ix = _this$state$_intentio[0],\n iy = _this$state$_intentio[1];\n var _this$config$swipeVel = _this.config.swipeVelocity,\n svx = _this$config$swipeVel[0],\n svy = _this$config$swipeVel[1];\n var _this$config$swipeDis = _this.config.swipeDistance,\n sx = _this$config$swipeDis[0],\n sy = _this$config$swipeDis[1];\n var sd = _this.config.swipeDuration;\n\n var endState = _extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values));\n\n var swipe = [0, 0];\n\n if (endState.elapsedTime < sd) {\n if (ix !== false && Math.abs(vx) > svx && Math.abs(mx) > sx) swipe[0] = sign(vx);\n if (iy !== false && Math.abs(vy) > svy && Math.abs(my) > sy) swipe[1] = sign(vy);\n }\n\n _this.updateSharedState({\n buttons: 0\n });\n\n _this.updateGestureState(_extends({}, endState, {\n tap: tap,\n swipe: swipe\n }));\n\n _this.fireGestureHandler(_this.config.filterTaps && tap === true);\n };\n\n _this.clean = function () {\n _CoordinatesRecognize.prototype.clean.call(_assertThisInitialized(_this));\n\n _this.state._dragStarted = false;\n\n _this.releasePointerCapture();\n\n clearWindowListeners(_this.controller, _this.stateKey);\n };\n\n _this.onCancel = function () {\n if (_this.state.canceled) return;\n\n _this.updateGestureState({\n canceled: true,\n _active: false\n });\n\n _this.updateSharedState({\n buttons: 0\n });\n\n setTimeout(function () {\n return _this.fireGestureHandler();\n }, 0);\n };\n\n _this.onClick = function (event) {\n if (!_this.state._dragIsTap) event.stopPropagation();\n };\n\n return _this;\n }\n\n var _proto = DragRecognizer.prototype;\n\n _proto.startDrag = function startDrag(event, onDragIsStart) {\n if (onDragIsStart === void 0) {\n onDragIsStart = false;\n }\n\n // startDrag can happen after a timeout, so we need to check if the gesture is still active\n // as the user might have lift up the pointer in between.\n if ( // if the gesture isn't active (probably means)\n !this.state._active || // if the drag has already started we should ignore subsequent attempts\n this.state._dragStarted) return;\n if (!onDragIsStart) this.setStartState(event);\n this.updateGestureState({\n _dragStarted: true,\n _dragPreventScroll: true,\n cancel: this.onCancel\n });\n this.clearTimeout();\n this.fireGestureHandler();\n };\n\n _proto.addBindings = function addBindings$1(bindings) {\n if (this.config.useTouch) {\n addBindings(bindings, 'onTouchStart', this.onDragStart);\n\n addBindings(bindings, 'onTouchMove', this.onDragChange); // this is needed for react-three-fiber\n\n\n addBindings(bindings, 'onTouchEnd', this.onDragEnd);\n\n addBindings(bindings, 'onTouchCancel', this.onDragEnd);\n } else {\n addBindings(bindings, 'onPointerDown', this.onDragStart);\n\n addBindings(bindings, 'onPointerMove', this.onDragChange); // this is needed for react-three-fiber\n\n\n addBindings(bindings, 'onPointerUp', this.onDragEnd);\n\n addBindings(bindings, 'onPointerCancel', this.onDragEnd);\n }\n\n if (this.config.filterTaps) {\n var handler = this.controller.config.eventOptions.capture ? 'onClick' : 'onClickCapture';\n\n addBindings(bindings, handler, this.onClick);\n }\n };\n\n return DragRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Inlined from https://github.com/alexreardon/memoize-one\r\n */\nfunction memoizeOne(resultFn, isEqual) {\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n function memoized() {\n for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n\n return memoized;\n}\n\n/**\r\n * Taken from https://github.com/FormidableLabs/react-fast-compare\r\n *\r\n * Dropped comments and ArrayBuffer handling\r\n */\nfunction equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n var it;\n\n if (typeof Map === 'function' && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (typeof Set === 'function' && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n }\n\n if (typeof Element !== 'undefined' && a instanceof Element) return false;\n\n for (i = length; i-- !== 0;) {\n if (keys[i] === '_owner' && a.$$typeof) continue;\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n\n return true;\n } // true if both NaN, false otherwise — NaN !== NaN → true\n // eslint-disable-next-line no-self-compare\n\n\n return a !== a && b !== b;\n}\n\nfunction isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // eslint-disable-next-line no-console\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n\n throw error;\n }\n}\n\n/**\r\n * Drag hook.\r\n *\r\n * @param handler - the function fired every time the drag gesture updates\r\n * @param [config={}] - the config object including generic options and drag options\r\n */\n\nfunction useDrag(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('drag', DragRecognizer);\n var buildDragConfig = useRef();\n\n if (!buildDragConfig.current) {\n buildDragConfig.current = memoizeOne(_buildDragConfig, isEqual);\n }\n\n return useRecognizers({\n drag: handler\n }, buildDragConfig.current(config));\n}\n\n/**\r\n * @private\r\n * Abstract class for distance/angle-based gesture recongizers\r\n */\n\nvar DistanceAngleRecognizer = /*#__PURE__*/function (_Recognizer) {\n _inheritsLoose(DistanceAngleRecognizer, _Recognizer);\n\n function DistanceAngleRecognizer() {\n return _Recognizer.apply(this, arguments) || this;\n }\n\n var _proto = DistanceAngleRecognizer.prototype;\n\n _proto.getInternalMovement = function getInternalMovement(values, state) {\n var prev_a = state.values[1]; // not be defined if ctrl+wheel is used for zoom only\n\n var d = values[0],\n _values$ = values[1],\n a = _values$ === void 0 ? prev_a : _values$;\n var delta_a = a - prev_a;\n var next_turns = state.turns;\n if (Math.abs(delta_a) > 270) next_turns += sign(delta_a);\n return subV([d, a - 360 * next_turns], state.initial);\n };\n\n _proto.getKinematics = function getKinematics(values, event) {\n var state = this.getMovement(values);\n var turns = (values[1] - state._movement[1] - this.state.initial[1]) / 360;\n var dt = event.timeStamp - this.state.timeStamp;\n\n var _calculateAllKinemati = calculateAllKinematics(state.movement, state.delta, dt),\n kinematics = _objectWithoutPropertiesLoose(_calculateAllKinemati, [\"distance\", \"velocity\"]);\n\n return _extends({\n turns: turns\n }, state, kinematics);\n };\n\n _proto.mapStateValues = function mapStateValues(state) {\n return {\n da: state.values,\n vdva: state.velocities\n };\n };\n\n return DistanceAngleRecognizer;\n}(Recognizer);\n\nvar ZOOM_CONSTANT = 7;\nvar WEBKIT_DISTANCE_SCALE_FACTOR = 260;\nvar PinchRecognizer = /*#__PURE__*/function (_DistanceAngleRecogni) {\n _inheritsLoose(PinchRecognizer, _DistanceAngleRecogni);\n\n function PinchRecognizer() {\n var _this;\n\n _this = _DistanceAngleRecogni.apply(this, arguments) || this;\n _this.ingKey = 'pinching';\n _this.stateKey = 'pinch';\n\n _this.onPinchStart = function (event) {\n addEventIds(_this.controller, event);\n var touchIds = _this.controller.touchIds;\n if (!_this.enabled) return;\n\n if (_this.state._active) {\n // check that the pointerIds that initiated the gesture\n // are still enabled. This is useful for when the page\n // loses track of the pointers (minifying gesture on iPad).\n if (_this.state._pointerIds.every(function (id) {\n return touchIds.has(id);\n })) return; // something was wrong with the pointers but we let it go.\n } // until we reach two fingers on the target don't react\n\n\n if (touchIds.size < 2) return;\n\n var _pointerIds = Array.from(touchIds).slice(0, 2);\n\n var _getTwoTouchesEventVa = getTwoTouchesEventValues(event, _pointerIds, _this.transform),\n values = _getTwoTouchesEventVa.values,\n origin = _getTwoTouchesEventVa.origin;\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n _pointerIds: _pointerIds,\n cancel: _this.onCancel,\n origin: origin\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onPinchChange = function (event) {\n var _this$state = _this.state,\n canceled = _this$state.canceled,\n _active = _this$state._active;\n if (canceled || !_active || // if the event has the same timestamp as the previous event\n event.timeStamp === _this.state.timeStamp) return;\n var genericEventData = getGenericEventData(event);\n\n _this.updateSharedState(genericEventData);\n\n try {\n var _getTwoTouchesEventVa2 = getTwoTouchesEventValues(event, _this.state._pointerIds, _this.transform),\n values = _getTwoTouchesEventVa2.values,\n origin = _getTwoTouchesEventVa2.origin;\n\n var kinematics = _this.getKinematics(values, event);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), kinematics, {\n origin: origin\n }));\n\n _this.fireGestureHandler();\n } catch (e) {\n _this.onPinchEnd(event);\n }\n };\n\n _this.onPinchEnd = function (event) {\n removeEventIds(_this.controller, event);\n var pointerIds = getTouchIds(event); // if none of the lifted pointerIds is in the state pointerIds don't do anything\n\n if (_this.state._pointerIds.every(function (id) {\n return !pointerIds.includes(id);\n })) return;\n\n _this.clean();\n\n if (!_this.state._active) return;\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values), {\n _active: false\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onCancel = function () {\n if (_this.state.canceled) return;\n\n _this.updateGestureState({\n _active: false,\n canceled: true\n });\n\n setTimeout(function () {\n return _this.fireGestureHandler();\n }, 0);\n };\n /**\r\n * PINCH WITH WEBKIT GESTURES\r\n */\n\n\n _this.onGestureStart = function (event) {\n if (!_this.enabled) return;\n event.preventDefault();\n var values = getWebkitGestureEventValues(event, _this.transform);\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n origin: [event.clientX, event.clientY],\n cancel: _this.onCancel\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onGestureChange = function (event) {\n var _this$state2 = _this.state,\n canceled = _this$state2.canceled,\n _active = _this$state2._active;\n if (canceled || !_active) return;\n event.preventDefault();\n var genericEventData = getGenericEventData(event);\n\n _this.updateSharedState(genericEventData); // this normalizes the values of the Safari's WebKitEvent by calculating\n // the delta and then multiplying it by a constant.\n\n\n var values = getWebkitGestureEventValues(event, _this.transform);\n values[0] = (values[0] - _this.state.event.scale) * WEBKIT_DISTANCE_SCALE_FACTOR + _this.state.values[0];\n\n var kinematics = _this.getKinematics(values, event);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), kinematics, {\n origin: [event.clientX, event.clientY]\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onGestureEnd = function (event) {\n _this.clean();\n\n if (!_this.state._active) return;\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values), {\n _active: false,\n origin: [event.clientX, event.clientY]\n }));\n\n _this.fireGestureHandler();\n };\n /**\r\n * PINCH WITH WHEEL\r\n */\n\n\n _this.wheelShouldRun = function (event) {\n return _this.enabled && event.ctrlKey;\n };\n\n _this.getWheelValuesFromEvent = function (event) {\n var _getWheelEventValues = getWheelEventValues(event, _this.transform),\n delta_d = _getWheelEventValues[1];\n\n var _this$state$values = _this.state.values,\n prev_d = _this$state$values[0],\n prev_a = _this$state$values[1]; // ZOOM_CONSTANT is based on Safari trackpad natural zooming\n\n var _delta_d = -delta_d * ZOOM_CONSTANT; // new distance is the previous state distance added to the delta\n\n\n var d = prev_d + _delta_d;\n var a = prev_a !== void 0 ? prev_a : 0;\n return {\n values: [d, a],\n origin: [event.clientX, event.clientY],\n delta: [_delta_d, a]\n };\n };\n\n _this.onWheel = function (event) {\n if (!_this.wheelShouldRun(event)) return;\n\n _this.setTimeout(_this.onWheelEnd);\n\n if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event);\n };\n\n _this.onWheelStart = function (event) {\n var _this$getWheelValuesF = _this.getWheelValuesFromEvent(event),\n values = _this$getWheelValuesF.values,\n delta = _this$getWheelValuesF.delta,\n origin = _this$getWheelValuesF.origin;\n\n if (event.cancelable) event.preventDefault();else if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('To properly support zoom on trackpads, try using the `domTarget` option and `config.eventOptions.passive` set to `false`. This message will only appear in development mode.');\n }\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true), {\n offset: values,\n delta: delta,\n origin: origin\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onWheelChange = function (event) {\n if (event.cancelable) event.preventDefault();\n\n _this.updateSharedState(getGenericEventData(event));\n\n var _this$getWheelValuesF2 = _this.getWheelValuesFromEvent(event),\n values = _this$getWheelValuesF2.values,\n origin = _this$getWheelValuesF2.origin,\n delta = _this$getWheelValuesF2.delta;\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event), {\n origin: origin,\n delta: delta\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onWheelEnd = function () {\n _this.clean();\n\n if (!_this.state._active) return;\n _this.state._active = false;\n\n _this.updateGestureState(_this.getMovement(_this.state.values));\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = PinchRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n // Only try to use gesture events when they are supported and domTarget is set\n // as React doesn't support gesture handlers.\n if (this.controller.config.domTarget && !this.controller.supportsTouchEvents && this.controller.supportsGestureEvents) {\n addBindings(bindings, 'onGestureStart', this.onGestureStart);\n\n addBindings(bindings, 'onGestureChange', this.onGestureChange);\n\n addBindings(bindings, 'onGestureEnd', this.onGestureEnd);\n } else {\n addBindings(bindings, 'onTouchStart', this.onPinchStart);\n\n addBindings(bindings, 'onTouchMove', this.onPinchChange);\n\n addBindings(bindings, 'onTouchEnd', this.onPinchEnd);\n\n addBindings(bindings, 'onTouchCancel', this.onPinchEnd);\n\n addBindings(bindings, 'onWheel', this.onWheel);\n }\n };\n\n return PinchRecognizer;\n}(DistanceAngleRecognizer);\n\n/**\r\n * Pinch hook.\r\n *\r\n * @param handler - the function fired every time the pinch gesture updates\r\n * @param [config={}] - the config object including generic options and pinch options\r\n */\n\nfunction usePinch(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('pinch', PinchRecognizer);\n var buildPinchConfig = useRef();\n\n if (!buildPinchConfig.current) {\n buildPinchConfig.current = memoizeOne(_buildPinchConfig, isEqual);\n }\n\n return useRecognizers({\n pinch: handler\n }, buildPinchConfig.current(config));\n}\n\nvar WheelRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(WheelRecognizer, _CoordinatesRecognize);\n\n function WheelRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'wheeling';\n _this.stateKey = 'wheel';\n _this.debounced = true;\n\n _this.handleEvent = function (event) {\n if (event.ctrlKey && 'pinch' in _this.controller.handlers) return;\n if (!_this.enabled) return;\n\n _this.setTimeout(_this.onEnd);\n\n _this.updateSharedState(getGenericEventData(event));\n\n var values = addV(getWheelEventValues(event, _this.transform), _this.state.values);\n\n if (!_this.state._active) {\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true)));\n\n var movement = _this.getMovement(values);\n\n var geometry = calculateAllGeometry(movement.delta);\n\n _this.updateGestureState(movement);\n\n _this.updateGestureState(geometry);\n } else {\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n }\n\n _this.fireGestureHandler();\n };\n\n _this.onEnd = function () {\n _this.clean();\n\n if (!_this.state._active) return;\n\n var movement = _this.getMovement(_this.state.values);\n\n _this.updateGestureState(movement);\n\n _this.updateGestureState({\n _active: false,\n velocities: [0, 0],\n velocity: 0\n });\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = WheelRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n addBindings(bindings, 'onWheel', this.handleEvent);\n };\n\n return WheelRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Wheel hook.\r\n *\r\n * @param handler - the function fired every time the wheel gesture updates\r\n * @param the config object including generic options and wheel options\r\n */\n\nfunction useWheel(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('wheel', WheelRecognizer);\n var buildWheelConfig = useRef();\n\n if (!buildWheelConfig.current) {\n buildWheelConfig.current = memoizeOne(_buildWheelConfig, isEqual);\n }\n\n return useRecognizers({\n wheel: handler\n }, buildWheelConfig.current(config));\n}\n\nvar MoveRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(MoveRecognizer, _CoordinatesRecognize);\n\n function MoveRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'moving';\n _this.stateKey = 'move';\n _this.debounced = true;\n\n _this.onMove = function (event) {\n if (!_this.enabled) return;\n\n _this.setTimeout(_this.onMoveEnd);\n\n if (!_this.state._active) _this.onMoveStart(event);else _this.onMoveChange(event);\n };\n\n _this.onMoveStart = function (event) {\n _this.updateSharedState(getGenericEventData(event));\n\n var values = getPointerEventValues(event, _this.transform);\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true)));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onMoveChange = function (event) {\n _this.updateSharedState(getGenericEventData(event));\n\n var values = getPointerEventValues(event, _this.transform);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n\n _this.fireGestureHandler();\n };\n\n _this.onMoveEnd = function () {\n _this.clean();\n\n if (!_this.state._active) return;\n var values = _this.state.values;\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.updateGestureState({\n velocities: [0, 0],\n velocity: 0,\n _active: false\n });\n\n _this.fireGestureHandler();\n };\n\n _this.hoverTransform = function () {\n return _this.controller.config.hover.transform || _this.controller.config.transform;\n };\n\n _this.onPointerEnter = function (event) {\n _this.controller.state.shared.hovering = true;\n if (!_this.controller.config.enabled) return;\n\n if (_this.controller.config.hover.enabled) {\n var values = getPointerEventValues(event, _this.hoverTransform());\n\n var state = _extends({}, _this.controller.state.shared, _this.state, getGenericPayload(_assertThisInitialized(_this), event, true), {\n args: _this.args,\n values: values,\n active: true,\n hovering: true\n });\n\n _this.controller.handlers.hover(_extends({}, state, _this.mapStateValues(state)));\n }\n\n if ('move' in _this.controller.handlers) _this.onMoveStart(event);\n };\n\n _this.onPointerLeave = function (event) {\n _this.controller.state.shared.hovering = false;\n if ('move' in _this.controller.handlers) _this.onMoveEnd();\n if (!_this.controller.config.hover.enabled) return;\n var values = getPointerEventValues(event, _this.hoverTransform());\n\n var state = _extends({}, _this.controller.state.shared, _this.state, getGenericPayload(_assertThisInitialized(_this), event), {\n args: _this.args,\n values: values,\n active: false\n });\n\n _this.controller.handlers.hover(_extends({}, state, _this.mapStateValues(state)));\n };\n\n return _this;\n }\n\n var _proto = MoveRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n if ('move' in this.controller.handlers) {\n addBindings(bindings, 'onPointerMove', this.onMove);\n }\n\n if ('hover' in this.controller.handlers) {\n addBindings(bindings, 'onPointerEnter', this.onPointerEnter);\n\n addBindings(bindings, 'onPointerLeave', this.onPointerLeave);\n }\n };\n\n return MoveRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Move hook.\r\n *\r\n * @param handler - the function fired every time the move gesture updates\r\n * @param [config={}] - the config object including generic options and move options\r\n */\n\nfunction useMove(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('move', MoveRecognizer);\n var buildMoveConfig = useRef();\n\n if (!buildMoveConfig.current) {\n buildMoveConfig.current = memoizeOne(_buildMoveConfig, isEqual);\n }\n\n return useRecognizers({\n move: handler\n }, buildMoveConfig.current(config));\n}\n\n/**\r\n * Hover hook.\r\n *\r\n * @param handler - the function fired every time the hover gesture updates\r\n * @param [config={}] - the config object including generic options and hover options\r\n */\n\nfunction useHover(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('hover', MoveRecognizer);\n var buildHoverConfig = useRef();\n\n if (!buildHoverConfig.current) {\n buildHoverConfig.current = memoizeOne(_buildHoverConfig, isEqual);\n }\n\n return useRecognizers({\n hover: handler\n }, buildHoverConfig.current(config));\n}\n\nvar ScrollRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(ScrollRecognizer, _CoordinatesRecognize);\n\n function ScrollRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'scrolling';\n _this.stateKey = 'scroll';\n _this.debounced = true;\n\n _this.handleEvent = function (event) {\n if (!_this.enabled) return;\n\n _this.clearTimeout();\n\n _this.setTimeout(_this.onEnd);\n\n var values = getScrollEventValues(event, _this.transform);\n\n _this.updateSharedState(getGenericEventData(event));\n\n if (!_this.state._active) {\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true)));\n\n var movementDetection = _this.getMovement(values);\n\n var geometry = calculateAllGeometry(movementDetection.delta);\n\n _this.updateGestureState(movementDetection);\n\n _this.updateGestureState(geometry);\n } else {\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n }\n\n _this.fireGestureHandler();\n };\n\n _this.onEnd = function () {\n _this.clean();\n\n if (!_this.state._active) return;\n\n _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {\n _active: false,\n velocities: [0, 0],\n velocity: 0\n }));\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = ScrollRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n addBindings(bindings, 'onScroll', this.handleEvent);\n };\n\n return ScrollRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Scroll hook.\r\n *\r\n * @param handler - the function fired every time the scroll gesture updates\r\n * @param [config={}] - the config object including generic options and scroll options\r\n */\n\nfunction useScroll(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('scroll', ScrollRecognizer);\n var buildScrollConfig = useRef();\n\n if (!buildScrollConfig.current) {\n buildScrollConfig.current = memoizeOne(_buildScrollConfig, isEqual);\n }\n\n return useRecognizers({\n scroll: handler\n }, buildScrollConfig.current(config));\n}\n\nvar RE_NOT_NATIVE = /^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;\n\nfunction sortHandlers(handlers) {\n var _native = {};\n var handle = {};\n var actions = new Set();\n\n for (var key in handlers) {\n if (RE_NOT_NATIVE.test(key)) {\n actions.add(RegExp.lastMatch);\n handle[key] = handlers[key];\n } else {\n _native[key] = handlers[key];\n }\n }\n\n return [handle, _native, actions];\n}\n/**\r\n * @public\r\n *\r\n * The most complete gesture hook, allowing support for multiple gestures.\r\n *\r\n * @param {Handlers} handlers - an object with on[Gesture] keys containg gesture handlers\r\n * @param {UseGestureConfig} [config={}] - the full config object\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\n\nfunction useGesture(_handlers, config) {\n if (config === void 0) {\n config = {};\n }\n\n var _sortHandlers = sortHandlers(_handlers),\n handlers = _sortHandlers[0],\n nativeHandlers = _sortHandlers[1],\n actions = _sortHandlers[2];\n\n RecognizersMap.set('drag', DragRecognizer);\n RecognizersMap.set('hover', MoveRecognizer);\n RecognizersMap.set('move', MoveRecognizer);\n RecognizersMap.set('pinch', PinchRecognizer);\n RecognizersMap.set('scroll', ScrollRecognizer);\n RecognizersMap.set('wheel', WheelRecognizer);\n var mergedConfig = buildComplexConfig(config, actions);\n var internalHandlers = {};\n if (actions.has('onDrag')) internalHandlers.drag = includeStartEndHandlers(handlers, 'onDrag');\n if (actions.has('onWheel')) internalHandlers.wheel = includeStartEndHandlers(handlers, 'onWheel');\n if (actions.has('onScroll')) internalHandlers.scroll = includeStartEndHandlers(handlers, 'onScroll');\n if (actions.has('onMove')) internalHandlers.move = includeStartEndHandlers(handlers, 'onMove');\n if (actions.has('onPinch')) internalHandlers.pinch = includeStartEndHandlers(handlers, 'onPinch');\n if (actions.has('onHover')) internalHandlers.hover = handlers.onHover;\n return useRecognizers(internalHandlers, mergedConfig, nativeHandlers);\n}\n\nfunction includeStartEndHandlers(handlers, handlerKey) {\n var startKey = handlerKey + 'Start';\n var endKey = handlerKey + 'End';\n\n var fn = function fn(state) {\n var memo = undefined;\n if (state.first && startKey in handlers) handlers[startKey](state);\n if (handlerKey in handlers) memo = handlers[handlerKey](state);\n if (state.last && endKey in handlers) handlers[endKey](state);\n return memo;\n };\n\n return fn;\n}\n\nexport { addV, rubberbandIfOutOfBounds, subV, useDrag, useGesture, useHover, useMove, usePinch, useScroll, useWheel };\n//# sourceMappingURL=reactusegesture.esm.js.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign } from 'tslib';\n\nvar clamp = function (min, max) { return function (v) {\r\n return Math.max(Math.min(v, max), min);\r\n}; };\r\nvar sanitize = function (v) { return (v % 1 ? Number(v.toFixed(5)) : v); };\r\nvar floatRegex = /(-)?(\\d[\\d\\.]*)/g;\r\nvar colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;\r\nvar singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\n\nvar number = {\r\n test: function (v) { return typeof v === 'number'; },\r\n parse: parseFloat,\r\n transform: function (v) { return v; }\r\n};\r\nvar alpha = __assign(__assign({}, number), { transform: clamp(0, 1) });\r\nvar scale = __assign(__assign({}, number), { default: 1 });\n\nvar createUnitType = function (unit) { return ({\r\n test: function (v) {\r\n return typeof v === 'string' && v.endsWith(unit) && v.split(' ').length === 1;\r\n },\r\n parse: parseFloat,\r\n transform: function (v) { return \"\" + v + unit; }\r\n}); };\r\nvar degrees = createUnitType('deg');\r\nvar percent = createUnitType('%');\r\nvar px = createUnitType('px');\r\nvar vh = createUnitType('vh');\r\nvar vw = createUnitType('vw');\r\nvar progressPercentage = __assign(__assign({}, percent), { parse: function (v) { return percent.parse(v) / 100; }, transform: function (v) { return percent.transform(v * 100); } });\n\nvar getValueFromFunctionString = function (value) {\r\n return value.substring(value.indexOf('(') + 1, value.lastIndexOf(')'));\r\n};\r\nvar clampRgbUnit = clamp(0, 255);\r\nvar isRgba = function (v) { return v.red !== undefined; };\r\nvar isHsla = function (v) { return v.hue !== undefined; };\r\nfunction getValuesAsArray(value) {\r\n return getValueFromFunctionString(value)\r\n .replace(/(,|\\/)/g, ' ')\r\n .split(/ \\s*/);\r\n}\r\nvar splitColorValues = function (terms) {\r\n return function (v) {\r\n if (typeof v !== 'string')\r\n return v;\r\n var values = {};\r\n var valuesArray = getValuesAsArray(v);\r\n for (var i = 0; i < 4; i++) {\r\n values[terms[i]] =\r\n valuesArray[i] !== undefined ? parseFloat(valuesArray[i]) : 1;\r\n }\r\n return values;\r\n };\r\n};\r\nvar rgbaTemplate = function (_a) {\r\n var red = _a.red, green = _a.green, blue = _a.blue, _b = _a.alpha, alpha = _b === void 0 ? 1 : _b;\r\n return \"rgba(\" + red + \", \" + green + \", \" + blue + \", \" + alpha + \")\";\r\n};\r\nvar hslaTemplate = function (_a) {\r\n var hue = _a.hue, saturation = _a.saturation, lightness = _a.lightness, _b = _a.alpha, alpha = _b === void 0 ? 1 : _b;\r\n return \"hsla(\" + hue + \", \" + saturation + \", \" + lightness + \", \" + alpha + \")\";\r\n};\r\nvar rgbUnit = __assign(__assign({}, number), { transform: function (v) { return Math.round(clampRgbUnit(v)); } });\r\nfunction isColorString(color, colorType) {\r\n return color.startsWith(colorType) && singleColorRegex.test(color);\r\n}\r\nvar rgba = {\r\n test: function (v) { return (typeof v === 'string' ? isColorString(v, 'rgb') : isRgba(v)); },\r\n parse: splitColorValues(['red', 'green', 'blue', 'alpha']),\r\n transform: function (_a) {\r\n var red = _a.red, green = _a.green, blue = _a.blue, _b = _a.alpha, alpha$1 = _b === void 0 ? 1 : _b;\r\n return rgbaTemplate({\r\n red: rgbUnit.transform(red),\r\n green: rgbUnit.transform(green),\r\n blue: rgbUnit.transform(blue),\r\n alpha: sanitize(alpha.transform(alpha$1))\r\n });\r\n }\r\n};\r\nvar hsla = {\r\n test: function (v) { return (typeof v === 'string' ? isColorString(v, 'hsl') : isHsla(v)); },\r\n parse: splitColorValues(['hue', 'saturation', 'lightness', 'alpha']),\r\n transform: function (_a) {\r\n var hue = _a.hue, saturation = _a.saturation, lightness = _a.lightness, _b = _a.alpha, alpha$1 = _b === void 0 ? 1 : _b;\r\n return hslaTemplate({\r\n hue: Math.round(hue),\r\n saturation: percent.transform(sanitize(saturation)),\r\n lightness: percent.transform(sanitize(lightness)),\r\n alpha: sanitize(alpha.transform(alpha$1))\r\n });\r\n }\r\n};\r\nvar hex = __assign(__assign({}, rgba), { test: function (v) { return typeof v === 'string' && isColorString(v, '#'); }, parse: function (v) {\r\n var r = '';\r\n var g = '';\r\n var b = '';\r\n if (v.length > 4) {\r\n r = v.substr(1, 2);\r\n g = v.substr(3, 2);\r\n b = v.substr(5, 2);\r\n }\r\n else {\r\n r = v.substr(1, 1);\r\n g = v.substr(2, 1);\r\n b = v.substr(3, 1);\r\n r += r;\r\n g += g;\r\n b += b;\r\n }\r\n return {\r\n red: parseInt(r, 16),\r\n green: parseInt(g, 16),\r\n blue: parseInt(b, 16),\r\n alpha: 1\r\n };\r\n } });\r\nvar color = {\r\n test: function (v) {\r\n return (typeof v === 'string' && singleColorRegex.test(v)) ||\r\n isRgba(v) ||\r\n isHsla(v);\r\n },\r\n parse: function (v) {\r\n if (rgba.test(v)) {\r\n return rgba.parse(v);\r\n }\r\n else if (hsla.test(v)) {\r\n return hsla.parse(v);\r\n }\r\n else if (hex.test(v)) {\r\n return hex.parse(v);\r\n }\r\n return v;\r\n },\r\n transform: function (v) {\r\n if (isRgba(v)) {\r\n return rgba.transform(v);\r\n }\r\n else if (isHsla(v)) {\r\n return hsla.transform(v);\r\n }\r\n return v;\r\n }\r\n};\n\nvar COLOR_TOKEN = '${c}';\r\nvar NUMBER_TOKEN = '${n}';\r\nvar convertNumbersToZero = function (v) {\r\n return typeof v === 'number' ? 0 : v;\r\n};\r\nvar complex = {\r\n test: function (v) {\r\n if (typeof v !== 'string' || !isNaN(v))\r\n return false;\r\n var numValues = 0;\r\n var foundNumbers = v.match(floatRegex);\r\n var foundColors = v.match(colorRegex);\r\n if (foundNumbers)\r\n numValues += foundNumbers.length;\r\n if (foundColors)\r\n numValues += foundColors.length;\r\n return numValues > 0;\r\n },\r\n parse: function (v) {\r\n var input = v;\r\n var parsed = [];\r\n var foundColors = input.match(colorRegex);\r\n if (foundColors) {\r\n input = input.replace(colorRegex, COLOR_TOKEN);\r\n parsed.push.apply(parsed, foundColors.map(color.parse));\r\n }\r\n var foundNumbers = input.match(floatRegex);\r\n if (foundNumbers) {\r\n parsed.push.apply(parsed, foundNumbers.map(number.parse));\r\n }\r\n return parsed;\r\n },\r\n createTransformer: function (prop) {\r\n var template = prop;\r\n var token = 0;\r\n var foundColors = prop.match(colorRegex);\r\n var numColors = foundColors ? foundColors.length : 0;\r\n if (foundColors) {\r\n for (var i = 0; i < numColors; i++) {\r\n template = template.replace(foundColors[i], COLOR_TOKEN);\r\n token++;\r\n }\r\n }\r\n var foundNumbers = template.match(floatRegex);\r\n var numNumbers = foundNumbers ? foundNumbers.length : 0;\r\n if (foundNumbers) {\r\n for (var i = 0; i < numNumbers; i++) {\r\n template = template.replace(foundNumbers[i], NUMBER_TOKEN);\r\n token++;\r\n }\r\n }\r\n return function (v) {\r\n var output = template;\r\n for (var i = 0; i < token; i++) {\r\n output = output.replace(i < numColors ? COLOR_TOKEN : NUMBER_TOKEN, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\r\n }\r\n return output;\r\n };\r\n },\r\n getAnimatableNone: function (target) {\r\n var parsedTarget = complex.parse(target);\r\n var targetTransformer = complex.createTransformer(target);\r\n return targetTransformer(parsedTarget.map(convertNumbersToZero));\r\n }\r\n};\n\nexport { alpha, color, complex, degrees, hex, hsla, number, percent, progressPercentage, px, rgbUnit, rgba, scale, vh, vw };\n","import { hsla, rgba, hex, color, complex } from 'style-value-types';\nimport { invariant } from 'hey-listen';\nimport { getFrameData } from 'framesync';\nimport { createAnticipateEasing, createBackIn, createExpoIn, cubicBezier, linear, easeIn, easeOut, easeInOut, circIn, circOut, circInOut, backIn, backOut, backInOut, anticipate, reversed, mirrored } from '@popmotion/easing';\nexport { createAnticipateEasing, createBackIn, createExpoIn, cubicBezier, linear, easeIn, easeOut, easeInOut, circIn, circOut, circInOut, backIn, backOut, backInOut, anticipate, reversed, mirrored } from '@popmotion/easing';\n\nvar zeroPoint = {\r\n x: 0,\r\n y: 0,\r\n z: 0\r\n};\r\nvar isNum = function (v) { return typeof v === 'number'; };\n\nvar radiansToDegrees = (function (radians) { return (radians * 180) / Math.PI; });\n\nvar angle = (function (a, b) {\r\n if (b === void 0) { b = zeroPoint; }\r\n return radiansToDegrees(Math.atan2(b.y - a.y, b.x - a.x));\r\n});\n\nvar applyOffset = (function (from, to) {\r\n var hasReceivedFrom = true;\r\n if (to === undefined) {\r\n to = from;\r\n hasReceivedFrom = false;\r\n }\r\n return function (v) {\r\n if (hasReceivedFrom) {\r\n return v - from + to;\r\n }\r\n else {\r\n from = v;\r\n hasReceivedFrom = true;\r\n return to;\r\n }\r\n };\r\n});\n\nvar curryRange = (function (func) { return function (min, max, v) { return (v !== undefined ? func(min, max, v) : function (cv) { return func(min, max, cv); }); }; });\n\nvar clamp = function (min, max, v) {\r\n return Math.min(Math.max(v, min), max);\r\n};\r\nvar clamp$1 = curryRange(clamp);\n\nvar conditional = (function (check, apply) { return function (v) {\r\n return check(v) ? apply(v) : v;\r\n}; });\n\nvar degreesToRadians = (function (degrees) { return (degrees * Math.PI) / 180; });\n\nvar isPoint = (function (point) {\r\n return point.hasOwnProperty('x') && point.hasOwnProperty('y');\r\n});\n\nvar isPoint3D = (function (point) {\r\n return isPoint(point) && point.hasOwnProperty('z');\r\n});\n\nvar distance1D = function (a, b) { return Math.abs(a - b); };\r\nvar distance = (function (a, b) {\r\n if (b === void 0) { b = zeroPoint; }\r\n if (isNum(a) && isNum(b)) {\r\n return distance1D(a, b);\r\n }\r\n else if (isPoint(a) && isPoint(b)) {\r\n var xDelta = distance1D(a.x, b.x);\r\n var yDelta = distance1D(a.y, b.y);\r\n var zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\r\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\r\n }\r\n return 0;\r\n});\n\nvar progress = (function (from, to, value) {\r\n var toFromDifference = to - from;\r\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\r\n});\n\nvar mix = (function (from, to, progress) {\r\n return -progress * from + progress * to + from;\r\n});\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar mixLinearColor = function (from, to, v) {\r\n var fromExpo = from * from;\r\n var toExpo = to * to;\r\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\r\n};\r\nvar colorTypes = [hex, rgba, hsla];\r\nvar getColorType = function (v) {\r\n return colorTypes.find(function (type) { return type.test(v); });\r\n};\r\nvar notAnimatable = function (color$$1) {\r\n return \"'\" + color$$1 + \"' is not an animatable color. Use the equivalent color code instead.\";\r\n};\r\nvar mixColor = (function (from, to) {\r\n var fromColorType = getColorType(from);\r\n var toColorType = getColorType(to);\r\n invariant(!!fromColorType, notAnimatable(from));\r\n invariant(!!toColorType, notAnimatable(to));\r\n invariant(fromColorType.transform === toColorType.transform, 'Both colors must be hex/RGBA, OR both must be HSLA.');\r\n var fromColor = fromColorType.parse(from);\r\n var toColor = toColorType.parse(to);\r\n var blended = __assign({}, fromColor);\r\n var mixFunc = fromColorType === hsla ? mix : mixLinearColor;\r\n return function (v) {\r\n for (var key in blended) {\r\n if (key !== 'alpha') {\r\n blended[key] = mixFunc(fromColor[key], toColor[key], v);\r\n }\r\n }\r\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\r\n return fromColorType.transform(blended);\r\n };\r\n});\n\nvar combineFunctions = function (a, b) { return function (v) { return b(a(v)); }; };\r\nvar pipe = (function () {\r\n var transformers = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n transformers[_i] = arguments[_i];\r\n }\r\n return transformers.reduce(combineFunctions);\r\n});\n\nfunction getMixer(origin, target) {\r\n if (isNum(origin)) {\r\n return function (v) { return mix(origin, target, v); };\r\n }\r\n else if (color.test(origin)) {\r\n return mixColor(origin, target);\r\n }\r\n else {\r\n return mixComplex(origin, target);\r\n }\r\n}\r\nvar mixArray = function (from, to) {\r\n var output = from.slice();\r\n var numValues = output.length;\r\n var blendValue = from.map(function (fromThis, i) { return getMixer(fromThis, to[i]); });\r\n return function (v) {\r\n for (var i = 0; i < numValues; i++) {\r\n output[i] = blendValue[i](v);\r\n }\r\n return output;\r\n };\r\n};\r\nvar mixObject = function (origin, target) {\r\n var output = __assign({}, origin, target);\r\n var blendValue = {};\r\n for (var key in output) {\r\n if (origin[key] !== undefined && target[key] !== undefined) {\r\n blendValue[key] = getMixer(origin[key], target[key]);\r\n }\r\n }\r\n return function (v) {\r\n for (var key in blendValue) {\r\n output[key] = blendValue[key](v);\r\n }\r\n return output;\r\n };\r\n};\r\nfunction analyse(value) {\r\n var parsed = complex.parse(value);\r\n var numValues = parsed.length;\r\n var numNumbers = 0;\r\n var numRGB = 0;\r\n var numHSL = 0;\r\n for (var i = 0; i < numValues; i++) {\r\n if (numNumbers || typeof parsed[i] === 'number') {\r\n numNumbers++;\r\n }\r\n else {\r\n if (parsed[i].hue !== undefined) {\r\n numHSL++;\r\n }\r\n else {\r\n numRGB++;\r\n }\r\n }\r\n }\r\n return { parsed: parsed, numNumbers: numNumbers, numRGB: numRGB, numHSL: numHSL };\r\n}\r\nvar mixComplex = function (origin, target) {\r\n var template = complex.createTransformer(target);\r\n var originStats = analyse(origin);\r\n var targetStats = analyse(target);\r\n invariant(originStats.numHSL === targetStats.numHSL &&\r\n originStats.numRGB === targetStats.numRGB &&\r\n originStats.numNumbers >= targetStats.numNumbers, \"Complex values '\" + origin + \"' and '\" + target + \"' too different to mix. Ensure all colors are of the same type.\");\r\n return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\r\n};\n\nvar mixNumber = function (from, to) { return function (p) { return mix(from, to, p); }; };\r\nfunction detectMixerFactory(v) {\r\n if (typeof v === 'number') {\r\n return mixNumber;\r\n }\r\n else if (typeof v === 'string') {\r\n if (color.test(v)) {\r\n return mixColor;\r\n }\r\n else {\r\n return mixComplex;\r\n }\r\n }\r\n else if (Array.isArray(v)) {\r\n return mixArray;\r\n }\r\n else if (typeof v === 'object') {\r\n return mixObject;\r\n }\r\n}\r\nfunction createMixers(output, ease, customMixer) {\r\n var mixers = [];\r\n var mixerFactory = customMixer || detectMixerFactory(output[0]);\r\n var numMixers = output.length - 1;\r\n for (var i = 0; i < numMixers; i++) {\r\n var mixer = mixerFactory(output[i], output[i + 1]);\r\n if (ease) {\r\n var easingFunction = Array.isArray(ease) ? ease[i] : ease;\r\n mixer = pipe(easingFunction, mixer);\r\n }\r\n mixers.push(mixer);\r\n }\r\n return mixers;\r\n}\r\nfunction fastInterpolate(_a, _b) {\r\n var from = _a[0], to = _a[1];\r\n var mixer = _b[0];\r\n return function (v) { return mixer(progress(from, to, v)); };\r\n}\r\nfunction slowInterpolate(input, mixers) {\r\n var inputLength = input.length;\r\n var lastInputIndex = inputLength - 1;\r\n return function (v) {\r\n var mixerIndex = 0;\r\n var foundMixerIndex = false;\r\n if (v <= input[0]) {\r\n foundMixerIndex = true;\r\n }\r\n else if (v >= input[lastInputIndex]) {\r\n mixerIndex = lastInputIndex - 1;\r\n foundMixerIndex = true;\r\n }\r\n if (!foundMixerIndex) {\r\n var i = 1;\r\n for (; i < inputLength; i++) {\r\n if (input[i] > v || i === lastInputIndex) {\r\n break;\r\n }\r\n }\r\n mixerIndex = i - 1;\r\n }\r\n var progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\r\n return mixers[mixerIndex](progressInRange);\r\n };\r\n}\r\nfunction interpolate(input, output, _a) {\r\n var _b = _a === void 0 ? {} : _a, _c = _b.clamp, clamp = _c === void 0 ? true : _c, ease = _b.ease, mixer = _b.mixer;\r\n var inputLength = input.length;\r\n invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\r\n invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\r\n if (input[0] > input[inputLength - 1]) {\r\n input = [].concat(input);\r\n output = [].concat(output);\r\n input.reverse();\r\n output.reverse();\r\n }\r\n var mixers = createMixers(output, ease, mixer);\r\n var interpolator = inputLength === 2\r\n ? fastInterpolate(input, mixers)\r\n : slowInterpolate(input, mixers);\r\n return clamp\r\n ? pipe(clamp$1(input[0], input[inputLength - 1]), interpolator)\r\n : interpolator;\r\n}\n\nvar pointFromVector = (function (origin, angle, distance) {\r\n angle = degreesToRadians(angle);\r\n return {\r\n x: distance * Math.cos(angle) + origin.x,\r\n y: distance * Math.sin(angle) + origin.y\r\n };\r\n});\n\nvar toDecimal = (function (num, precision) {\r\n if (precision === void 0) { precision = 2; }\r\n precision = Math.pow(10, precision);\r\n return Math.round(num * precision) / precision;\r\n});\n\nvar smoothFrame = (function (prevValue, nextValue, duration, smoothing) {\r\n if (smoothing === void 0) { smoothing = 0; }\r\n return toDecimal(prevValue +\r\n (duration * (nextValue - prevValue)) / Math.max(smoothing, duration));\r\n});\n\nvar smooth = (function (strength) {\r\n if (strength === void 0) { strength = 50; }\r\n var previousValue = 0;\r\n var lastUpdated = 0;\r\n return function (v) {\r\n var currentFramestamp = getFrameData().timestamp;\r\n var timeDelta = currentFramestamp !== lastUpdated ? currentFramestamp - lastUpdated : 0;\r\n var newValue = timeDelta\r\n ? smoothFrame(previousValue, v, timeDelta, strength)\r\n : previousValue;\r\n lastUpdated = currentFramestamp;\r\n previousValue = newValue;\r\n return newValue;\r\n };\r\n});\n\nvar snap = (function (points) {\r\n if (typeof points === 'number') {\r\n return function (v) { return Math.round(v / points) * points; };\r\n }\r\n else {\r\n var i_1 = 0;\r\n var numPoints_1 = points.length;\r\n return function (v) {\r\n var lastDistance = Math.abs(points[0] - v);\r\n for (i_1 = 1; i_1 < numPoints_1; i_1++) {\r\n var point = points[i_1];\r\n var distance = Math.abs(point - v);\r\n if (distance === 0)\r\n return point;\r\n if (distance > lastDistance)\r\n return points[i_1 - 1];\r\n if (i_1 === numPoints_1 - 1)\r\n return point;\r\n lastDistance = distance;\r\n }\r\n };\r\n }\r\n});\n\nvar identity = function (v) { return v; };\r\nvar springForce = function (alterDisplacement) {\r\n if (alterDisplacement === void 0) { alterDisplacement = identity; }\r\n return curryRange(function (constant, origin, v) {\r\n var displacement = origin - v;\r\n var springModifiedDisplacement = -(0 - constant + 1) * (0 - alterDisplacement(Math.abs(displacement)));\r\n return displacement <= 0\r\n ? origin + springModifiedDisplacement\r\n : origin - springModifiedDisplacement;\r\n });\r\n};\r\nvar springForceLinear = springForce();\r\nvar springForceExpo = springForce(Math.sqrt);\n\nvar velocityPerFrame = (function (xps, frameDuration) {\r\n return isNum(xps) ? xps / (1000 / frameDuration) : 0;\r\n});\n\nvar velocityPerSecond = (function (velocity, frameDuration) {\r\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\r\n});\n\nvar wrap = function (min, max, v) {\r\n var rangeSize = max - min;\r\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\r\n};\r\nvar wrap$1 = curryRange(wrap);\n\nvar clampProgress = clamp$1(0, 1);\r\nvar steps = (function (steps, direction) {\r\n if (direction === void 0) { direction = 'end'; }\r\n return function (progress) {\r\n progress =\r\n direction === 'end' ? Math.min(progress, 0.999) : Math.max(progress, 0.001);\r\n var expanded = progress * steps;\r\n var rounded = direction === 'end' ? Math.floor(expanded) : Math.ceil(expanded);\r\n return clampProgress(rounded / steps);\r\n };\r\n});\n\nexport { angle, applyOffset, clamp$1 as clamp, conditional, degreesToRadians, distance, interpolate, isPoint, isPoint3D, mix, mixArray, mixColor, mixComplex, mixObject, pipe, pointFromVector, progress, radiansToDegrees, smooth, smoothFrame, snap, springForce, springForceExpo, springForceLinear, steps, toDecimal, velocityPerFrame, velocityPerSecond, wrap$1 as wrap };\n","export const placeholders = {\n image: {\n src: \"data:image/svg+xml,%3Csvg width='360' height='240' viewBox='0 0 360 240' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0)'%3E%3Cpath d='M0 0H360V240H0V0Z' fill='%23A1A8C2' fill-opacity='0.18'/%3E%3Cpath d='M260 59C260 78.33 244.33 94 225 94C205.67 94 190 78.33 190 59C190 39.67 205.67 24 225 24C244.33 24 260 39.67 260 59Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M319 250H417L291.485 124.485C286.799 119.799 279.201 119.799 274.515 124.485L234 165L319 250Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3Cpath d='M311 250L-89 250L102.515 58.4853C107.201 53.799 114.799 53.799 119.485 58.4853L311 250Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0'%3E%3Cpath d='M0 0H360V240H0V0Z' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A\",\n dimensions: { width: 360, height: 240 },\n },\n}\n","import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n BorderRadiusValue,\n BorderValue,\n ElementIDValue,\n ImageValue,\n LinkValue,\n MarginValue,\n PaddingValue,\n ResponsiveOpacityValue,\n ShadowsValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssBorder,\n cssBorderRadius,\n cssBoxShadow,\n cssMargin,\n cssMediaRules,\n cssPadding,\n cssWidth,\n} from '../../utils/cssMediaRules'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n useFile,\n} from '../../hooks'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../react'\nimport { Link } from '../../shared/Link'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\nconst ImageContainer = styled.div<{\n width?: Props['width']\n margin?: Props['margin']\n padding?: Props['padding']\n border?: BorderPropControllerData | null | undefined\n borderRadius: Props['borderRadius']\n boxShadow?: BoxShadowPropControllerData | null | undefined\n opacity: Props['opacity']\n link?: Props['link']\n dimensions: { width: number; height: number }\n}>`\n line-height: 0;\n overflow: hidden;\n ${props => cssWidth(`${props.dimensions.width}px`)(props)}\n ${cssMargin()}\n ${cssPadding()}\n ${cssBorder()}\n ${cssBorderRadius()}\n ${cssBoxShadow()}\n ${p =>\n cssMediaRules(\n [p.opacity],\n ([opacity = 1]) => css`\n opacity: ${opacity};\n `,\n )}\n`\n\nconst UnoptimizedImage = styled.img`\n width: 100%;\n`\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nexport default forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLImageElement>,\n) {\n const fileData = useFile(file)\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n\n if (!dimensions) return null\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n dimensions={dimensions}\n ref={ref}\n id={id}\n className={className}\n width={width}\n margin={margin}\n opacity={opacity}\n padding={padding}\n border={borderData}\n borderRadius={borderRadius}\n boxShadow={boxShadowData}\n >\n {isInBuilder ? (\n <UnoptimizedImage src={imageSrc} alt={altText} />\n ) : (\n <NextImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n />\n )}\n </ImageContainer>\n )\n})\n","import { useState, useRef, useEffect, useCallback, forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\nimport { motion, useAnimation } from 'framer-motion'\nimport { useGesture } from 'react-use-gesture'\nimport { wrap } from '@popmotion/popcorn'\n\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor, useMediaQuery } from '../../hooks'\n\nimport Image from '../Image'\nimport {\n ResponsiveValue,\n ElementIDValue,\n ImagesValue,\n MarginValue,\n ResponsiveNumberValue,\n WidthValue,\n ResponsiveIconRadioGroupValue,\n GapXValue,\n CheckboxValue,\n NumberValue,\n ResponsiveColorValue,\n BorderValue,\n BorderRadiusValue,\n} from '../../../prop-controllers/descriptors'\n\nconst LeftChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M7,13,1,7,7,1\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\nconst RightChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M3,1,9,7,3,13\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\n// NOTE: We set height to 100% here to fix an issue on IE11 where the child height of a flex column extends too far\nconst Container = styled.div`\n position: relative;\n height: 100%;\n`\n\ntype Props = {\n id?: ElementIDValue\n images?: ImagesValue\n width?: WidthValue\n margin?: MarginValue\n pageSize?: ResponsiveNumberValue\n step?: ResponsiveNumberValue\n slideAlignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gap?: GapXValue\n autoplay?: CheckboxValue\n delay?: NumberValue\n showArrows?: CheckboxValue\n arrowPosition?: ResponsiveIconRadioGroupValue<'inside' | 'center' | 'outside'>\n arrowColor?: ResponsiveColorValue\n arrowBackground?: ResponsiveColorValue\n showDots?: CheckboxValue\n dotColor?: ResponsiveColorValue\n slideBorder?: BorderValue\n slideBorderRadius?: BorderRadiusValue\n}\n\nconst Wrapper = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n position: relative;\n display: flex;\n flex-direction: column;\n ${cssWidth('400px')}\n ${cssMargin()}\n\n &:focus {\n outline: 0;\n }\n`\n\nconst Arrow = styled.div<{ background?: ResponsiveValue<Color> | null }>`\n padding: 10px;\n border-radius: 50%;\n outline: 0;\n border: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n ${p =>\n cssMediaRules(\n [p.background] as const,\n ([background = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 }]) => css`\n background: ${colorToString(background)};\n `,\n )}\n\n svg {\n transition: transform 0.15s;\n stroke: currentColor;\n }\n`\n\nconst Slop = styled.div<{\n color?: ResponsiveValue<Color> | null\n}>`\n position: absolute;\n top: 0;\n bottom: 0;\n display: ${props => (props.hidden ? 'none' : 'flex')};\n align-items: center;\n cursor: pointer;\n z-index: 2;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n color: ${colorToString(color)};\n `,\n )}\n`\n\nconst Slide = styled(motion.div)<{\n pageSize: Props['pageSize']\n alignItems: Props['slideAlignment']\n}>`\n display: flex;\n ${p =>\n cssMediaRules(\n [p.pageSize],\n ([pageSize = 1]) => css`\n flex-basis: ${100 / pageSize}%;\n max-width: ${100 / pageSize}%;\n min-width: ${100 / pageSize}%;\n `,\n )}\n\n ${p => cssMediaRules([p.alignItems], ([alignItems = 'center']) => ({ alignItems }))}\n`\n\nconst Reel = styled(motion.div)<{ gap: Props['gap'] }>`\n display: flex;\n position: relative;\n flex-wrap: nowrap;\n ${p =>\n cssMediaRules(\n [p.gap] as const,\n ([gap = { value: 0, unit: 'px' }]) => css`\n margin: 0 ${`${-gap.value / 2}${gap.unit}`};\n\n & > ${Slide} {\n padding: 0 ${`${gap.value / 2}${gap.unit}`};\n }\n `,\n )}\n`\n\nconst Page = styled(motion.div)`\n position: relative;\n width: 100%;\n`\n\nconst LeftSlop = styled(Slop)<{ position: Props['arrowPosition'] }>`\n ${p =>\n cssMediaRules([p.position] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return css`\n transform: translateX(8px);\n `\n case 'outside':\n return css`\n transform: translateX(calc(-100% - 8px));\n `\n default:\n return css`\n transform: translateX(calc(-50%));\n `\n }\n })}\n left: 0;\n\n &:hover > ${Arrow} {\n & > svg {\n transform: translateX(-2px);\n }\n }\n`\n\nconst RightSlop = styled(Slop)<{ position: Props['arrowPosition'] }>`\n ${p =>\n cssMediaRules([p.position] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return css`\n transform: translateX(-8px);\n `\n case 'outside':\n return css`\n transform: translateX(calc(100% + 8px));\n `\n default:\n return css`\n transform: translateX(calc(50%));\n `\n }\n })}\n right: 0;\n\n &:hover > ${Arrow} {\n & > svg {\n transform: translateX(2px);\n }\n }\n`\n\nconst ClipMask = styled.div`\n overflow: hidden;\n`\n\nconst Dots = styled.div<{ color?: ResponsiveValue<Color> | null }>`\n display: ${props => (props.hidden ? 'none' : 'flex')};\n justify-content: center;\n margin-top: 20px;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n color: ${colorToString(color)};\n `,\n )}\n`\n\nconst Dot = styled.div<{ active: boolean }>`\n position: relative;\n margin: 0 6px;\n border-radius: 50%;\n cursor: pointer;\n width: 16px;\n height: 16px;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n border-radius: 50%;\n transition: all 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n &::before {\n box-shadow: 0 0 0 2px currentColor;\n transform: translate3d(-50%, -50%, 0);\n width: ${props => (props.active ? 16 : 10)}px;\n height: ${props => (props.active ? 16 : 10)}px;\n }\n\n &::after {\n background: currentColor;\n transform: translate3d(-50%, -50%, 0) scale(${props => (props.active ? 1 : 0)});\n width: 10px;\n height: 10px;\n }\n\n &:hover::after {\n transform: translate3d(-50%, -50%, 0) scale(${props => (props.active ? 1 : 0.5)});\n }\n`\n\nconst SWIPE_THRESHOLD = 20\nconst swipePower = (dx: number, velocity: number) => dx * (1 + velocity)\n\nexport default forwardRef(function Carousel(\n {\n images = [],\n width,\n margin,\n pageSize: responsivePageSize,\n step: responsiveStep,\n gap,\n slideAlignment,\n showDots,\n showArrows,\n arrowPosition,\n arrowColor,\n arrowBackground,\n dotColor,\n autoplay = false,\n delay = 5,\n slideBorder,\n slideBorderRadius,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [index, setIndex] = useState(0)\n const swipe = useRef(0)\n const startIndex = wrap(0, images.length, index)\n const pageSize = useMediaQuery(responsivePageSize) || 1\n const step = useMediaQuery(responsiveStep) || 1\n const endIndex = startIndex + pageSize\n const pageCount = Math.ceil((images.length - pageSize) / step + 1)\n const pageIndex = Math.ceil(startIndex / step)\n const isFirstPage = pageIndex === 0\n const isLastPage = pageIndex === pageCount - 1\n const paginate = useCallback(\n pageDistance => {\n if (pageDistance === 0) return\n\n const direction = pageDistance / Math.abs(pageDistance)\n const remaining = direction > 0 ? images.slice(endIndex) : images.slice(0, startIndex)\n const distance = direction * Math.min(remaining.length, step * Math.abs(pageDistance))\n\n setIndex(index + distance)\n },\n [images, index, startIndex, endIndex, step],\n )\n // @ts-expect-error: `useAnimation` types expect no arguments.\n const animation = useAnimation({ x: 0, transition: { type: 'spring', stiffness: 100 } })\n const bindPage = useGesture(\n {\n onDrag: ({ movement: [mx], delta: [dx], velocity }) => {\n animation.start({ x: mx })\n swipe.current = swipePower(dx, velocity)\n },\n onDragEnd: () => {\n animation.start({ x: 0 })\n\n if (swipe.current > SWIPE_THRESHOLD) paginate(1)\n else if (swipe.current < -SWIPE_THRESHOLD) paginate(-1)\n },\n },\n {\n drag: {\n axis: 'x',\n bounds: { left: 0, right: 0 },\n rubberband: true,\n },\n },\n )\n\n useEffect(() => {\n if (!autoplay || pageSize !== 0) setIndex(0)\n }, [autoplay, pageSize])\n\n useEffect(() => {\n if (!autoplay) return () => {}\n\n const intervalId = setInterval(() => (isLastPage ? setIndex(0) : paginate(1)), delay * 1000)\n\n return () => clearInterval(intervalId)\n }, [autoplay, delay, paginate, isLastPage])\n\n return (\n <Wrapper\n ref={ref}\n width={width}\n margin={margin}\n tabIndex={-1}\n onKeyDown={e => {\n switch (e.key) {\n case 'ArrowRight':\n paginate(1)\n break\n case 'ArrowLeft':\n paginate(-1)\n break\n default:\n }\n }}\n >\n <Container>\n <ClipMask>\n <Page {...bindPage()} animate={animation}>\n <Reel\n gap={gap}\n animate={{ x: `${-(100 / pageSize) * startIndex}%` }}\n transition={{\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n duration: 0.5,\n },\n }}\n >\n {images.map(({ props: imageProps, key }) => (\n <Slide\n id={key}\n key={key}\n pageSize={responsivePageSize}\n alignItems={slideAlignment}\n onMouseDown={e => e.preventDefault()}\n onClick={e => {\n if (swipe.current !== 0) e.preventDefault()\n }}\n >\n <Image\n width={[{ deviceId: 'desktop', value: { value: 100, unit: '%' } }]}\n file={imageProps.file}\n altText={imageProps.altText}\n link={imageProps.link}\n border={slideBorder}\n borderRadius={slideBorderRadius}\n />\n </Slide>\n ))}\n </Reel>\n </Page>\n </ClipMask>\n <LeftSlop\n onClick={() => paginate(-1)}\n position={arrowPosition}\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop\n color={useColor(arrowColor)}\n hidden={!showArrows || isFirstPage}\n >\n <Arrow background={useColor(arrowBackground)}>\n <LeftChevron />\n </Arrow>\n </LeftSlop>\n <RightSlop\n onClick={() => paginate(1)}\n position={arrowPosition}\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop\n color={useColor(arrowColor)}\n hidden={!showArrows || isLastPage}\n >\n <Arrow background={useColor(arrowBackground)}>\n <RightChevron />\n </Arrow>\n </RightSlop>\n </Container>\n {/* @ts-expect-error: HTMLDivElement attributes conflicts with `color` prop */}\n <Dots color={useColor(dotColor)} hidden={!showDots}>\n {Array.from({ length: pageCount }).map((_, i) => (\n <Dot key={i} active={i === pageIndex} onClick={() => paginate(i - pageIndex)} />\n ))}\n </Dots>\n </Wrapper>\n )\n})\n","import { useState, useEffect, Ref, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { useColor } from '../../hooks'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n DateValue,\n ElementIDValue,\n FontValue,\n GapXValue,\n MarginValue,\n ResponsiveColorValue,\n ResponsiveIconRadioGroupValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\n\ntype Props = {\n id?: ElementIDValue\n date?: DateValue\n variant?: ResponsiveIconRadioGroupValue<\n 'filled' | 'filled-split' | 'outline' | 'outline-split' | 'clear'\n >\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n gap?: GapXValue\n numberFont?: FontValue\n numberColor?: ResponsiveColorValue\n blockColor?: ResponsiveColorValue\n labelFont?: FontValue\n labelColor?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n daysLabel?: TextInputValue\n hoursLabel?: TextInputValue\n minutesLabel?: TextInputValue\n secondsLabel?: TextInputValue\n}\n\nconst Block = styled.div`\n display: block;\n padding: 0.5em;\n font-size: 1em;\n`\n\nconst Label = styled.div`\n margin-top: 0.25em;\n`\n\nconst Segment = styled.div`\n flex: 1;\n text-align: center;\n`\n\nconst Container = styled.div<{\n width: Props['width']\n margin: Props['margin']\n variant: Props['variant']\n size: Props['size']\n shape: Props['shape']\n gap: Props['gap']\n labelColor?: ResponsiveValue<Color> | null\n numberFont?: ResponsiveValue<string>\n numberColor?: ResponsiveValue<Color> | null\n blockColor?: ResponsiveValue<Color> | null\n labelFont?: ResponsiveValue<string>\n}>`\n display: flex;\n ${cssWidth('560px')}\n ${cssMargin()}\n ${p =>\n cssMediaRules([p.size] as const, ([size = 'medium']) => {\n switch (size) {\n case 'small':\n return css`\n font-size: 18px;\n\n ${Label} {\n font-size: 14px;\n }\n `\n case 'large':\n return css`\n font-size: 32px;\n\n ${Label} {\n font-size: 18px;\n }\n `\n default:\n return css`\n font-size: 24px;\n\n ${Label} {\n font-size: 16px;\n }\n `\n }\n })}\n\n ${Segment} {\n ${p =>\n cssMediaRules(\n [p.gap] as const,\n ([gap]) => css`\n margin: 0 ${gap == null ? 0 : `${gap.value / 2}${gap.unit}`};\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n `,\n )}\n }\n\n ${Block} {\n ${p =>\n cssMediaRules([p.shape] as const, ([shape = 'rounded']) => {\n switch (shape) {\n case 'pill':\n return css`\n border-radius: 500px;\n `\n case 'rounded':\n return css`\n border-radius: 6px;\n `\n default:\n return css`\n border-radius: 0;\n `\n }\n })}\n ${p =>\n cssMediaRules(\n [p.variant, p.blockColor, p.numberColor, p.numberFont] as const,\n ([\n variant = 'filled',\n blockColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n numberColor = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 },\n numberFont = 'sans-serif',\n ]) => {\n switch (variant) {\n case 'filled':\n return css`\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n background: ${colorToString(blockColor)};\n `\n case 'filled-split':\n return css`\n position: relative;\n color: ${colorToString(numberColor)};\n font-family: '${numberFont}';\n\n > span {\n position: relative;\n z-index: 1;\n }\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: calc(50% + 1px);\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n background: ${colorToString(blockColor)};\n }\n\n :after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: calc(50% + 1px);\n bottom: 0;\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit;\n background: ${colorToString(blockColor)};\n }\n `\n case 'outline':\n return css`\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n background: transparent;\n border: 2px solid ${colorToString(blockColor)};\n `\n case 'outline-split':\n return css`\n position: relative;\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n border: 2px solid ${colorToString(blockColor)};\n\n > span {\n position: relative;\n z-index: 1;\n }\n\n :before {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 2px;\n margin-top: -1px;\n background: ${colorToString(blockColor)};\n }\n `\n default:\n return css`\n font-family: '${numberFont}';\n background: transparent;\n color: ${colorToString(numberColor)};\n padding-top: 0;\n padding-bottom: 0;\n `\n }\n },\n )}\n }\n\n ${Label} {\n ${p =>\n cssMediaRules(\n [p.labelColor, p.labelFont] as const,\n ([\n labelColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n labelFont = 'sans-serif',\n ]) => css`\n font-family: '${labelFont}';\n color: ${colorToString(labelColor)};\n `,\n )}\n }\n`\n\nconst getRemaining = (date: Props['date'] | undefined) => {\n if (date == null) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n const timeDiff = new Date(date).getTime() - Date.now()\n\n if (timeDiff <= 0) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n let delta = Math.abs(timeDiff) / 1000\n\n const days = Math.floor(delta / 86400)\n delta -= days * 86400\n\n const hours = Math.floor(delta / 3600) % 24\n delta -= hours * 3600\n\n const minutes = Math.floor(delta / 60) % 60\n delta -= minutes * 60\n\n const seconds = parseInt(String(delta % 60), 10)\n\n return { days, hours, minutes, seconds }\n}\n\nexport default forwardRef(function Countdown(\n {\n id,\n margin,\n width,\n date,\n variant,\n size,\n shape,\n gap,\n labelColor,\n labelFont,\n numberColor,\n numberFont,\n blockColor,\n daysLabel,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [{ days, hours, minutes, seconds }, setRemaining] = useState(getRemaining(date))\n\n useEffect(() => {\n setRemaining(getRemaining(date))\n\n const intervalId = setInterval(() => {\n setRemaining(getRemaining(date))\n }, 1000)\n\n return () => clearInterval(intervalId)\n }, [date])\n\n return (\n <Container\n ref={ref}\n id={id}\n width={width}\n margin={margin}\n variant={variant}\n size={size}\n shape={shape}\n labelColor={useColor(labelColor)}\n labelFont={labelFont}\n numberColor={useColor(numberColor)}\n numberFont={numberFont}\n blockColor={useColor(blockColor)}\n gap={gap}\n >\n <Segment>\n <Block>\n <span>{days}</span>\n </Block>\n <Label>{daysLabel == null ? 'Days' : daysLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{hours}</span>\n </Block>\n <Label>{hoursLabel == null ? 'Hours' : hoursLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{minutes}</span>\n </Block>\n <Label>{minutesLabel == null ? 'Minutes' : minutesLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{seconds}</span>\n </Block>\n <Label>{secondsLabel == null ? 'Seconds' : secondsLabel}</Label>\n </Segment>\n </Container>\n )\n})\n","import { forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\n ResponsiveColorValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor } from '../../hooks'\n\ntype DividerVariant = 'solid' | 'dashed' | 'dotted' | 'blended'\n\ntype Props = {\n id?: ElementIDValue\n variant?: ResponsiveSelectValue<DividerVariant>\n thickness?: ResponsiveLengthValue\n color?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n}\n\n// IE11 has a bug with Flexbox vertical centering with min height if height is not set.\n// Wrapping it in another flex container fixes it for some reason, read more here:\n// https://stackoverflow.com/questions/19371626/flexbox-not-centering-vertically-in-ie\nconst IE11MinHeightContainer = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n display: flex;\n width: 100%;\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 40px;\n width: 100%;\n`\n\nconst Line = styled.div<{\n variant: Props['variant']\n color?: ResponsiveValue<Color> | null\n thickness: Props['thickness']\n}>`\n ${p =>\n cssMediaRules(\n [p.variant, p.thickness, p.color] as const,\n ([\n variant = 'solid',\n thickness = { value: 1, unit: 'px' },\n color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => {\n switch (variant) {\n case 'solid':\n case 'dashed':\n case 'dotted':\n return css`\n border-bottom-width: ${thickness == null\n ? '1px'\n : `${thickness.value}${thickness.unit}`};\n border-bottom-style: ${variant};\n border-bottom-color: ${colorToString(color)};\n `\n\n case 'blended':\n return css`\n height: ${`${thickness.value}${thickness.unit}`};\n background: linear-gradient(\n ${[\n '90deg',\n colorToString({ swatch: color.swatch, alpha: 0 }),\n colorToString(color),\n colorToString({ swatch: color.swatch, alpha: 0 }),\n ].join(', ')}\n );\n `\n\n default:\n variant as never\n throw new Error(`Invalid variant ${variant}.`)\n }\n },\n )}\n`\n\nexport default forwardRef(function Divider(\n { id, variant, thickness, color, width, margin }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <IE11MinHeightContainer ref={ref} id={id} width={width} margin={margin}>\n <Container>\n {/* @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop */}\n <Line variant={variant} thickness={thickness} color={useColor(color)} />\n </Container>\n </IE11MinHeightContainer>\n )\n})\n","/* eslint-env browser */\n\nimport { useState, useEffect, useLayoutEffect, forwardRef, Ref, useImperativeHandle } from 'react'\nimport styled from 'styled-components'\n\nimport { cssMargin, cssWidth } from '../../utils/cssMediaRules'\nimport {\n ElementIDValue,\n MarginValue,\n TextAreaValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\n\ntype Props = {\n id?: ElementIDValue\n html?: TextAreaValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n min-height: 15px;\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst defaultHtml = `<div style=\"padding: 24px; background-color: rgba(161, 168, 194, 0.18); overflow: hidden;\">\n<svg width=\"316\" height=\"168\" viewBox=\"0 0 316 168\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"70\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"78\" width=\"30\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"116\" width=\"78\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect y=\"20\" width=\"120\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"128\" y=\"20\" width=\"30\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"166\" y=\"20\" width=\"78\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect y=\"60\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"20\" y=\"80\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"40\" y=\"100\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"88\" y=\"100\" width=\"110\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"206\" y=\"100\" width=\"24\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"238\" y=\"100\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"40\" y=\"120\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"88\" y=\"120\" width=\"50\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"146\" y=\"120\" width=\"24\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"178\" y=\"120\" width=\"90\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"276\" y=\"120\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"20\" y=\"140\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect y=\"160\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n</svg>\n</div>`\nconst SCRIPT_TAG = 'script'\n\nexport default forwardRef(function Embed(\n { id, width, margin, html = defaultHtml }: Props,\n ref: Ref<HTMLDivElement | null>,\n) {\n const [container, setContainer] = useState<HTMLDivElement | null>(null)\n const [shouldRender, setShouldRender] = useState(false)\n\n useLayoutEffect(() => {\n setShouldRender(true)\n }, [])\n\n useImperativeHandle(ref, () => container, [container])\n\n useEffect(() => {\n // TODO: When we SSR the editor, we can remove the editor check\n // and not run this effect on the first render.\n if (!container) return\n\n const walker = container.ownerDocument.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node: Element) {\n return node.tagName.toLowerCase() === SCRIPT_TAG\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_REJECT\n },\n })\n\n const nodes: Element[] = []\n\n while (walker.nextNode()) nodes.push(walker.currentNode as Element)\n\n // By default scripts appended dynamically will execute asyncrhonously. Here we ensure that\n // scripts are loaded synchronously since that's what a user usually expects with scripts in\n // embedded in HTML which usually comes from the server.\n //\n // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#notes\n async function executeScriptsInOrder() {\n for (let i = 0; i < nodes.length; i++) {\n await new Promise<void>(resolve => {\n const node = nodes[i]\n const script = node.ownerDocument.createElement(SCRIPT_TAG)\n\n script.textContent = node.textContent\n Array.from(node.attributes).forEach(({ name, value }) => {\n script.setAttribute(name, value)\n })\n\n script.onload = () => resolve()\n script.onerror = () => resolve()\n\n node.parentNode?.insertBefore(script, node)\n node.parentNode?.removeChild(node)\n\n if (!script.hasAttribute('src')) resolve()\n })\n }\n }\n\n executeScriptsInOrder().catch(error => {\n // Ignore errors from user-provided code\n console.error(error)\n })\n }, [container, html])\n\n if (shouldRender === false) return null\n\n return (\n <Container\n ref={setContainer}\n id={id}\n margin={margin}\n width={width}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n )\n})\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+CiAgPHBhdGggZD0iTTI3IDE1SDFhMSAxIDAgMCAxLTEtMSAxIDEgMCAwIDEgMS0xaDI2YTEgMSAwIDAgMSAxIDEgMSAxIDAgMCAxLTEgMXptMC0xMEgxYTEgMSAwIDAgMC0xIDEgMSAxIDAgMCAwIDEgMWgyNmExIDEgMCAwIDAgMS0xIDEgMSAwIDAgMC0xLTF6bTAgMTZIMWExIDEgMCAwIDAtMSAxIDEgMSAwIDAgMCAxIDFoMjZhMSAxIDAgMCAwIDEtMSAxIDEgMCAwIDAtMS0xeiIvPgo8L3N2Zz4=\"","import styled, { css } from 'styled-components'\n\nimport { ResponsiveValue, Length } from '../../../prop-controllers/descriptors'\nimport { cssMediaRules } from '../../utils/cssMediaRules'\n\nconst GutterContainer = styled.div<{\n gutter?: ResponsiveValue<Length>\n first: boolean\n last: boolean\n}>`\n ${p =>\n cssMediaRules(\n [p.gutter],\n ([gutter = { value: 0, unit: 'px' }]) => css`\n padding-left: ${p.first ? '0px' : `${gutter.value / 2}${gutter.unit}`};\n padding-right: ${p.last ? '0px' : `${gutter.value / 2}${gutter.unit}`};\n `,\n )}\n`\n\nexport default GutterContainer\n","import styled from 'styled-components'\n\nimport { ResponsiveLengthValue } from '../../../../../prop-controllers/descriptors'\nimport GutterContainer from '../../../../shared/GutterContainer'\n\nconst PlaceholderLink = styled.div<{ width: number; button?: boolean }>`\n width: ${props => props.width}px;\n height: ${props => (props.button === true ? 32 : 8)}px;\n background-color: #a1a8c2;\n border-radius: ${props => (props.button === true ? 6 : 2)}px;\n opacity: 0.4;\n`\n\ntype Props = { gutter?: ResponsiveLengthValue }\n\nconst links = [{ width: 50 }, { width: 70 }, { width: 60 }, { width: 80, button: true }]\n\nexport default function LinksPlaceholder({ gutter }: Props): JSX.Element {\n return (\n <>\n {links.map((link, i) => (\n <GutterContainer key={i} gutter={gutter} first={i === 0} last={i === links.length - 1}>\n <PlaceholderLink {...link} />\n </GutterContainer>\n ))}\n </>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xIDJhMSAxIDAgMCAwLS43MDcgMS43MDdsMyAzYTEgMSAwIDAgMCAxLjQxNCAwbDMtM0ExIDEgMCAwIDAgNyAySDF6Ii8+PC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00IDBhMSAxIDAgMCAwLTEgMXYySDFhMSAxIDAgMSAwIDAgMmgydjJhMSAxIDAgMCAwIDIgMFY1aDJhMSAxIDAgMCAwIDAtMkg1VjFhMSAxIDAgMCAwLTEtMXoiLz48L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik01IDFhMSAxIDAgMCAwLTIgMHYzLjU4NmwtLjI5My0uMjkzYTEgMSAwIDAgMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMCAwIDEuNDE0IDBsMi0yYTEgMSAwIDAgMC0xLjQxNC0xLjQxNEw1IDQuNTg2VjF6Ii8+PC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNLjI5MyAyLjI5M2ExIDEgMCAwIDEgMS40MTQgMEw0IDQuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAgMSAxLjQxNCAxLjQxNGwtMyAzYTEgMSAwIDAgMS0xLjQxNCAwbC0zLTNhMSAxIDAgMCAxIDAtMS40MTR6Ii8+PC9zdmc+\"","import { ComponentPropsWithoutRef, useRef, useState, useLayoutEffect } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\n\nimport { ReactComponent as CaretDown8 } from '../../../../icons/caret-down-8.svg'\nimport { ReactComponent as Plus8 } from '../../../../icons/plus-8.svg'\nimport { ReactComponent as ArrowDown8 } from '../../../../icons/arrow-down-8.svg'\nimport { ReactComponent as ChevronDown8 } from '../../../../icons/chevron-down-8.svg'\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ResponsiveColorValue,\n TextStyleValue,\n LinkValue,\n} from '../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport { useColor } from '../../../../hooks'\n\nimport { Link } from '../../../../shared/Link'\nimport Button from '../../../Button'\n\nconst DROP_DOWN_MENU_WIDTH = 200\n\ntype Position = 'left' | 'right'\n\nconst DropDownMenu = styled.div<{ position: Position }>`\n position: absolute;\n top: 100%;\n left: ${props => (props.position === 'left' ? 0 : 'auto')};\n right: ${props => (props.position === 'right' ? 0 : 'auto')};\n background: #fff;\n margin: 0;\n padding: 8px 0;\n border-radius: 4px;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);\n width: ${DROP_DOWN_MENU_WIDTH}px;\n z-index: 99;\n list-style: none;\n overflow: hidden;\n transform-origin: 50% 0;\n will-change: transform, opacity;\n transform-style: preserve-3d;\n display: none;\n`\n\nconst dropIn = keyframes`\n 0% {\n opacity: 0;\n transform: rotateX(-20deg);\n }\n 100% {\n opacity: 1;\n transform: none;\n }\n`\n\nconst DropDownContainer = styled.div`\n position: relative;\n\n &:hover > ${DropDownMenu} {\n display: block;\n animation: ${dropIn} 0.25s;\n }\n`\n\nconst StyledDropDownItem = styled(Link)<{\n color?: ResponsiveValue<Color> | null\n textStyle?: TextStyleValue\n}>`\n display: block;\n text-decoration: none;\n line-height: 1.4;\n padding: 8px 16px;\n color: black;\n background-color: transparent;\n transition: background-color 0.2s;\n ${p =>\n cssMediaRules([p.color, p.textStyle] as const, ([color, textStyle = {}]) => {\n const fontSize = textStyle.fontSize || { value: 14, unit: 'px' }\n const fontWeight = textStyle.fontWeight == null ? 'normal' : textStyle.fontWeight\n const fontStyle = textStyle.fontStyle || []\n const letterSpacing = textStyle.letterSpacing == null ? null : textStyle.letterSpacing\n const textTransform = textStyle.textTransform || []\n\n return css`\n color: ${color == null ? 'black' : colorToString(color)};\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n font-weight: ${fontWeight};\n font-style: ${fontStyle.includes('italic') ? 'italic' : 'normal'};\n letter-spacing: ${letterSpacing == null ? 'normal' : `${letterSpacing}px`};\n text-transform: ${textTransform.includes('uppercase') ? 'uppercase' : 'none'};\n `\n })}\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.04);\n }\n`\n\ntype BaseDropDownItemProps = {\n color?: ResponsiveColorValue\n textStyle?: TextStyleValue\n}\n\ntype DropDownItemProps = BaseDropDownItemProps &\n Omit<ComponentPropsWithoutRef<typeof StyledDropDownItem>, keyof BaseDropDownItemProps>\n\nfunction DropDownItem({ color, ...restOfProps }: DropDownItemProps) {\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop.\n return <StyledDropDownItem {...restOfProps} color={useColor(color)} />\n}\n\ntype Props = ComponentPropsWithoutRef<typeof Button> & {\n label: string\n caret?: 'caret' | 'plus' | 'arrow-down' | 'chevron-down'\n links?: Array<{\n id: string\n payload: ComponentPropsWithoutRef<typeof DropDownItem> & {\n link?: LinkValue\n label: string\n }\n }>\n}\n\nexport default function DropDownButton({\n label,\n caret = 'caret',\n links = [],\n ...restOfProps\n}: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [position, setPosition] = useState<Position>('left')\n\n useLayoutEffect(() => {\n if (\n container.current &&\n container.current.ownerDocument.defaultView!.innerWidth <\n container.current.offsetLeft + DROP_DOWN_MENU_WIDTH\n ) {\n setPosition('right')\n } else {\n setPosition('left')\n }\n }, [setPosition])\n\n return (\n <DropDownContainer ref={container}>\n <Button {...restOfProps}>\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span style={{ marginRight: 6 }}>{label}</span>\n <span style={{ display: 'inline-flex', fill: 'currentColor' }}>\n {caret === 'caret' && <CaretDown8 />}\n {caret === 'plus' && <Plus8 />}\n {caret === 'arrow-down' && <ArrowDown8 />}\n {caret === 'chevron-down' && <ChevronDown8 />}\n </span>\n </div>\n </Button>\n <DropDownMenu position={position}>\n {links.map(({ id, payload }) => (\n <DropDownItem {...payload} key={id}>\n {payload.label}\n </DropDownItem>\n ))}\n </DropDownMenu>\n </DropDownContainer>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy43MDcgMy43MDdhMSAxIDAgMCAwLTEuNDE0LTEuNDE0TDggNi41ODYgMy43MDcgMi4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0TDYuNTg2IDhsLTQuMjkzIDQuMjkzYTEgMSAwIDEgMCAxLjQxNCAxLjQxNEw4IDkuNDE0bDQuMjkzIDQuMjkzYTEgMSAwIDAgMCAxLjQxNC0xLjQxNEw5LjQxNCA4bDQuMjkzLTQuMjkzWiIvPgo8L3N2Zz4=\"","import { ComponentPropsWithoutRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules, cssTextStyle } from '../../../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ResponsiveColorValue,\n TextStyleValue,\n LinkValue,\n} from '../../../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../../../utils/types'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { useColor } from '../../../../../../hooks'\n\nimport { ReactComponent as CaretDown8 } from '../../../../../../icons/caret-down-8.svg'\nimport { ReactComponent as Plus8 } from '../../../../../../icons/plus-8.svg'\nimport { ReactComponent as ArrowDown8 } from '../../../../../../icons/arrow-down-8.svg'\nimport { ReactComponent as ChevronDown8 } from '../../../../../../icons/chevron-down-8.svg'\n\nimport { Link } from '../../../../../../shared/Link'\nimport Button from '../../../../../Button'\n\nconst DropDownMenu = styled.div<{ open: boolean }>`\n display: ${props => (props.open ? 'flex' : 'none')};\n flex-direction: column;\n padding: 8px;\n`\n\nconst ButtonLink = styled(Button)`\n margin: 8px 0;\n`\n\nconst StyledLink = styled(Link)<{\n textStyle?: TextStyleValue\n color?: ResponsiveValue<Color> | null\n}>`\n text-decoration: none;\n line-height: 1.4;\n padding: 8px 16px;\n color: black;\n ${cssTextStyle()}\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color]) => css`\n color: ${color == null ? 'black' : colorToString(color)};\n `,\n )}\n`\n\ntype BaseDropDownItemProps = {\n color?: ResponsiveColorValue\n textStyle?: TextStyleValue\n}\n\ntype DropDownItemProps = BaseDropDownItemProps &\n Omit<ComponentPropsWithoutRef<typeof StyledLink>, keyof BaseDropDownItemProps>\n\nfunction DropDownItem({ color, ...restOfProps }: DropDownItemProps) {\n // @ts-expect-error: HTMLAnchorElement `color` attribute conflict with props\n return <StyledLink {...restOfProps} color={useColor(color)} />\n}\n\ntype Props = ComponentPropsWithoutRef<typeof Button> & {\n label: string\n links?: Array<{\n id: string\n payload: ComponentPropsWithoutRef<typeof DropDownItem> & {\n link?: LinkValue\n label: string\n }\n }>\n onClose?: () => unknown\n caret?: string\n}\n\nexport default function MobileDropDownButton({\n label,\n caret,\n links = [],\n onClose = () => {},\n ...restOfProps\n}: Props): JSX.Element {\n const [isOpen, setIsOpen] = useState(false)\n return (\n <>\n <ButtonLink {...restOfProps} onPointerDown={() => setIsOpen(prev => !prev)}>\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span style={{ marginRight: 6 }}>{label}</span>\n <span style={{ display: 'inline-flex', fill: 'currentColor' }}>\n <>\n {caret === 'caret' && <CaretDown8 />}\n {caret === 'plus' && <Plus8 />}\n {caret === 'arrow-down' && <ArrowDown8 />}\n {caret === 'chevron-down' && <ChevronDown8 />}\n </>\n </span>\n </div>\n </ButtonLink>\n <DropDownMenu open={isOpen}>\n {links.map(({ id, payload }) => (\n <DropDownItem {...payload} key={id} onClick={onClose}>\n {payload.label}\n </DropDownItem>\n ))}\n </DropDownMenu>\n </>\n )\n}\n","import { Fragment } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n} from '../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport { useColor } from '../../../../hooks'\nimport { ReactComponent as Times16 } from '../../../../icons/times-16.svg'\n\nimport Button from '../../../Button'\nimport DropDownButton from './components/MobileDropDownButton'\n\nconst ButtonLink = styled(Button)`\n margin: 8px 0;\n`\n\nconst Container = styled.div<{\n animation?: ResponsiveValue<'coverRight' | 'coverLeft'>\n backgroundColor?: ResponsiveValue<Color> | null\n open: boolean\n}>`\n position: fixed;\n flex-direction: column;\n width: 100%;\n padding: 40px 15px;\n transition: transform 300ms ease-in-out;\n overflow-y: auto;\n z-index: 9999;\n max-width: 575px;\n ${p =>\n cssMediaRules([p.animation, p.backgroundColor] as const, ([animation, backgroundColor]) =>\n animation == null\n ? css`\n display: none;\n `\n : css`\n display: flex;\n background-color: ${backgroundColor == null ? 'black' : colorToString(backgroundColor)};\n transform: ${p.open\n ? `translate3d(0,0,0)`\n : `translate3d(${{ coverRight: '', coverLeft: '-' }[animation]}100%, 0, 0)`};\n ${{\n coverRight: { top: 0, bottom: 0, right: 0 },\n coverLeft: { top: 0, bottom: 0, left: 0 },\n }[animation]}\n `,\n )}\n`\n\nconst CloseIconContainer = styled.button<{ color?: ResponsiveValue<Color> | null }>`\n position: absolute;\n top: 15px;\n right: 15px;\n padding: 0;\n border: 0;\n outline: 0;\n background: none;\n fill: currentColor;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color]) => css`\n color: ${color == null ? 'rgba(161, 168, 194, 0.5)' : colorToString(color)};\n `,\n )}\n`\n\ntype Props = {\n animation?: ResponsiveValue<'coverRight' | 'coverLeft'>\n backgroundColor?: ResponsiveColorValue\n closeIconColor?: ResponsiveColorValue\n links?: NavigationLinksValue\n onClose?: () => unknown\n open?: boolean\n}\n\nexport default function MobileMenu({\n animation,\n backgroundColor,\n open = false,\n closeIconColor,\n links = [],\n onClose = () => {},\n}: Props): JSX.Element {\n return (\n <Container animation={animation} backgroundColor={useColor(backgroundColor)} open={open}>\n {/* @ts-expect-error: HTMLButtonElement `color` attribute conflicts with prop */}\n <CloseIconContainer color={useColor(closeIconColor)} onClick={onClose}>\n <Times16 />\n </CloseIconContainer>\n <div\n style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', flexShrink: 0 }}\n >\n {links.map(link => (\n <Fragment key={link.id}>\n {link.type === 'button' && (\n <ButtonLink {...link.payload} onClick={onClose}>\n {link.payload.label}\n </ButtonLink>\n )}\n {link.type === 'dropdown' && <DropDownButton {...link.payload} onClose={onClose} />}\n </Fragment>\n ))}\n </div>\n </Container>\n )\n}\n","import { forwardRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { ReactComponent as MobileMenu28 } from '../../icons/mobile-menu-28.svg'\n\nimport GutterContainer from '../../shared/GutterContainer'\nimport Image from '../Image'\nimport Button from '../Button'\nimport LinksPlaceholder from './components/LinksPlaceholder'\nimport DropDownButton from './components/DropDownButton'\nimport MobileMenu from './components/MobileMenu'\nimport {\n ResponsiveValue,\n CheckboxValue,\n ElementIDValue,\n GapXValue,\n ImageValue,\n LinkValue,\n MarginValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TextInputValue,\n TextStyleValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssMargin, cssMediaRules, cssTextStyle, cssWidth } from '../../utils/cssMediaRules'\nimport { ColorValue as Color } from '../../utils/types'\nimport { colorToString } from '../../utils/colorToString'\nimport { useColor } from '../../hooks'\n\ntype Props = {\n id?: ElementIDValue\n links?: NavigationLinksValue\n linkTextStyle?: TextStyleValue\n showLogo?: CheckboxValue\n logoFile?: ImageValue\n logoWidth?: ResponsiveLengthValue\n logoAltText?: TextInputValue\n logoLink?: LinkValue\n alignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gutter?: GapXValue\n mobileMenuAnimation?: ResponsiveSelectValue<'coverRight' | 'coverLeft'>\n mobileMenuOpenIconColor?: ResponsiveColorValue\n mobileMenuCloseIconColor?: ResponsiveColorValue\n mobileMenuBackgroundColor?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.nav<{\n width: Props['width']\n margin: Props['margin']\n textStyle: Props['linkTextStyle']\n}>`\n display: flex;\n align-items: center;\n ${cssWidth()}\n ${cssMargin()}\n ${cssTextStyle()}\n`\n\nconst LinksContainer = styled.div<{\n alignment: Props['alignment']\n mobileMenuAnimation: Props['mobileMenuAnimation']\n}>`\n display: flex;\n align-items: center;\n flex-grow: 1;\n ${p =>\n cssMediaRules(\n [p.alignment, p.mobileMenuAnimation] as const,\n ([alignment = 'flex-end', mobileMenuAnimation]) => css`\n display: ${mobileMenuAnimation == null ? 'flex' : 'none'};\n justify-content: ${alignment};\n `,\n )}\n`\n\nconst OpenIconContainer = styled.button<{\n mobileMenuAnimation: Props['mobileMenuAnimation']\n alignment: Props['alignment']\n color: ResponsiveValue<Color> | null | undefined\n}>`\n display: none;\n flex-grow: 1;\n align-items: center;\n background: none;\n outline: 0;\n border: 0;\n padding: 0;\n fill: currentColor;\n ${p =>\n cssMediaRules(\n [p.mobileMenuAnimation, p.alignment, p.color] as const,\n ([mobileMenuAnimation, alignment = 'flex-end', color]) => css`\n display: ${mobileMenuAnimation == null ? 'none' : 'flex'};\n justify-content: ${alignment};\n color: ${color == null ? 'rgba(161, 168, 194, 0.5)' : colorToString(color)};\n `,\n )}\n`\n\nconst placeholder = {\n src: \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='93.12' height='36' viewBox='0 0 93.12 36'%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath d='M18,0A18,18,0,1,1,0,18,18,18,0,0,1,18,0ZM49.36,21.94h6.36V24H46.8V10h2.56Zm9.06.72a4.88,4.88,0,0,1-1.64-3.72,5,5,0,0,1,1.64-3.74,5.57,5.57,0,0,1,7.7,0,5.09,5.09,0,0,1,.26,7.18l-.26.26a5.56,5.56,0,0,1-7.7,0Zm1.68-6a3.39,3.39,0,0,0,0,4.52,3,3,0,0,0,4.24.08l.08-.08a3.39,3.39,0,0,0,0-4.52,3,3,0,0,0-4.24-.08Zm10,10.68,1-1.92a5.28,5.28,0,0,0,3.3,1.22,3.6,3.6,0,0,0,2.32-.72,2.73,2.73,0,0,0,.9-2.26V22.5a3.61,3.61,0,0,1-1.45,1.26,4.35,4.35,0,0,1-2,.46,4.57,4.57,0,0,1-3.58-1.54A5.48,5.48,0,0,1,69.2,18.9a5.42,5.42,0,0,1,1.36-3.74,4.64,4.64,0,0,1,3.62-1.5,4,4,0,0,1,3.44,1.72v-1.5h2.46v9a6.13,6.13,0,0,1-1.43,4.46,5.27,5.27,0,0,1-4,1.44,7.09,7.09,0,0,1-4.53-1.42Zm1.54-8.44a3.4,3.4,0,0,0,.82,2.3,2.72,2.72,0,0,0,2.17.94,3.13,3.13,0,0,0,1.21-.22,2.89,2.89,0,0,0,1-.62,3.08,3.08,0,0,0,.63-1,3.62,3.62,0,0,0,.21-1.3,4,4,0,0,0-.23-1.33,3.3,3.3,0,0,0-.63-1.05,2.74,2.74,0,0,0-1-.68,3.35,3.35,0,0,0-1.25-.24,2.92,2.92,0,0,0-1.2.24,2.58,2.58,0,0,0-.93.67,3,3,0,0,0-.59,1,3.89,3.89,0,0,0-.19,1.31ZM83.8,22.66a4.88,4.88,0,0,1-1.64-3.72A5,5,0,0,1,83.8,15.2a5.57,5.57,0,0,1,7.7,0,5.09,5.09,0,0,1,.26,7.18,3.19,3.19,0,0,1-.26.26,5.56,5.56,0,0,1-7.7,0Zm1.68-6a3.39,3.39,0,0,0,0,4.52,3,3,0,0,0,4.24.08l.08-.08a3.39,3.39,0,0,0,0-4.52,3,3,0,0,0-4.24-.08Z' fill='%23a1a8c2' opacity='0.4' style='isolation: isolate'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A\",\n dimensions: { width: 93, height: 36 },\n}\n\nexport default forwardRef<HTMLDivElement, Props>(function Navigation(\n {\n id,\n links = [],\n linkTextStyle,\n showLogo,\n logoFile,\n logoWidth,\n logoAltText,\n logoLink,\n alignment,\n gutter,\n mobileMenuAnimation,\n mobileMenuOpenIconColor,\n mobileMenuCloseIconColor,\n mobileMenuBackgroundColor,\n width,\n margin,\n },\n ref,\n) {\n const [isOpen, setIsOpen] = useState(false)\n\n return (\n <Container ref={ref} id={id} margin={margin} width={width} textStyle={linkTextStyle}>\n {showLogo === true && (\n <Image\n altText={logoAltText}\n file={logoFile}\n link={logoLink}\n placeholder={placeholder}\n width={logoWidth}\n />\n )}\n <div style={{ display: 'flex', flexGrow: 1, justifyContent: 'flex-end' }}>\n <LinksContainer alignment={alignment} mobileMenuAnimation={mobileMenuAnimation}>\n {links.length > 0 ? (\n links.map((link, i) => (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n {link.type === 'button' && <Button {...link.payload}>{link.payload.label}</Button>}\n {link.type === 'dropdown' && <DropDownButton {...link.payload} />}\n </GutterContainer>\n ))\n ) : (\n <LinksPlaceholder gutter={gutter} />\n )}\n </LinksContainer>\n <OpenIconContainer\n alignment={alignment}\n // @ts-expect-error: HTMLButtonElement `color` attribute conflicts with prop\n color={useColor(mobileMenuOpenIconColor)}\n mobileMenuAnimation={mobileMenuAnimation}\n onClick={() => setIsOpen(true)}\n >\n <MobileMenu28 />\n </OpenIconContainer>\n <MobileMenu\n animation={mobileMenuAnimation}\n backgroundColor={mobileMenuBackgroundColor}\n closeIconColor={mobileMenuCloseIconColor}\n links={links}\n onClose={() => setIsOpen(false)}\n open={isOpen}\n />\n </div>\n </Container>\n )\n})\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction factorial(a) {\n if (a % 1 || !(+a >= 0)) return NaN;\n if (a > 170) return Infinity;else if (a === 0) return 1;else {\n return a * factorial(a - 1);\n }\n}\n\nfunction power(a, b) {\n return Math.pow(a, b);\n}\n\nfunction sqrt(a) {\n return Math.sqrt(a);\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultMathSymbols = {\n symbols: {\n '!': {\n postfix: {\n symbol: '!',\n f: factorial,\n notation: 'postfix',\n precedence: 6,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '!',\n regSymbol: '!'\n },\n '^': {\n infix: {\n symbol: '^',\n f: power,\n notation: 'infix',\n precedence: 5,\n rightToLeft: 1,\n argCount: 2\n },\n symbol: '^',\n regSymbol: '\\\\^'\n },\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n },\n sqrt: {\n func: {\n symbol: 'sqrt',\n f: sqrt,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'sqrt',\n regSymbol: 'sqrt\\\\b'\n }\n }\n};\n\n// based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError =\n/*#__PURE__*/\nfunction (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/master/src/error/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}(\n/*#__PURE__*/\n_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultMathSymbols.symbols, additionalSymbols.symbols) : _extends({}, defaultMathSymbols.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\n// @private\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n // prettier-ignore\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n\nfunction endsWith (string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit (or the original value if an invalid string is passed). Optionally returns an array containing the stripped value and the original unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px'),\n * '--unit': stripUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * --unit: ${stripUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction stripUnit(value, unitReturn) {\n if (typeof value !== 'string') return unitReturn ? [value, undefined] : value;\n var matchedValue = value.match(cssRegex);\n\n if (unitReturn) {\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n }\n\n if (matchedValue) return parseFloat(value);\n return value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em =\n/*#__PURE__*/\npxtoFactory('em');\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @deprecated - getValueAndUnit has been marked for deprecation in polished 3.0 and will be fully deprecated in 4.0. It's functionality has been been moved to stripUnit as an optional return.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n // eslint-disable-next-line no-console\n console.warn(\"getValueAndUnit has been marked for deprecation in polished 3.0 and will be fully deprecated in 4.0. It's functionality has been been moved to stripUnit as an optional return.\");\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex$1);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 'perfectFourth';\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? stripUnit(base, true) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string' || unit !== 'em' && unit !== 'rem') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + unit;\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\nvar rem =\n/*#__PURE__*/\npxtoFactory('rem');\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _stripUnit = stripUnit(fromSize, true),\n unitlessFromSize = _stripUnit[0],\n fromSizeUnit = _stripUnit[1];\n\n var _stripUnit2 = stripUnit(toSize, true),\n unitlessToSize = _stripUnit2[0],\n toSizeUnit = _stripUnit2[1];\n\n var _stripUnit3 = stripUnit(minScreen, true),\n unitlessMinScreen = _stripUnit3[0],\n minScreenUnit = _stripUnit3[1];\n\n var _stripUnit4 = stripUnit(maxScreen, true),\n unitlessMaxScreen = _stripUnit4[0],\n maxScreenUnit = _stripUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || !fromSizeUnit || !toSizeUnit || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + fromSizeUnit + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n\n/**\n * CSS to represent truncated text with an ellipsis.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\nfunction ellipsis(width) {\n if (width === void 0) {\n width = '100%';\n }\n\n return {\n display: 'inline-block',\n maxWidth: width,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n}\n\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = cssProp, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _extends2, _extends3;\n\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var obj = _ref;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref2, _ref3, _ref4;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref4 = {}, _ref4[cssProp.prop] = cssProp.fromSize, _ref4[\"@media (min-width: \" + minScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref2), _ref4[\"@media (min-width: \" + maxScreen + \")\"] = (_ref3 = {}, _ref3[cssProp.prop] = cssProp.toSize, _ref3), _ref4;\n }\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats) {\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\";\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n localFonts = _ref.localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings;\n // Error Handling\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n } // Removes undefined fields for cleaner css object.\n\n };\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'clipPath': 'inset(50%)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject(), toDirection, colorStops.join(', '))\n };\n}\n\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nfunction _templateObject$1() {\n var data = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"]);\n\n _templateObject$1 = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject$1(), position, shape, extent, colorStops.join(', '))\n };\n}\n\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n\n/* eslint-disable key-spacing */\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n /* eslint-enable key-spacing */\n\n};\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + width[0] / 2 + width[1] + \" \" + height[0] + height[1] + \" \" + width[0] / 2 + width[1];\n\n case 'left':\n return \"\" + height[0] / 2 + height[1] + \" \" + width[0] + width[1] + \" \" + height[0] / 2 + height[1] + \" 0\";\n\n case 'bottom':\n return \"\" + height[0] + height[1] + \" \" + width[0] / 2 + width[1] + \" 0 \" + width[0] / 2 + width[1];\n\n case 'right':\n return \"\" + height[0] / 2 + height[1] + \" 0 \" + height[0] / 2 + height[1] + \" \" + width[0] + width[1];\n\n default:\n throw new PolishedError(59);\n }\n}; // needed for border-color\n\n\nvar reverseDirection = ['bottom', 'left', 'top', 'right'];\nvar NUMBER_AND_FLOAT = /(\\d*\\.?\\d*)/;\n/**\n * CSS to represent triangle with any pointing direction with an optional background color. Accepts number or px values for height and width.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent',\n * 'borderLeftColor': 'red !important',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = [parseFloat(width), String(width).replace(NUMBER_AND_FLOAT, '') || 'px'];\n var heightAndUnit = [parseFloat(height), String(height).replace(NUMBER_AND_FLOAT, '') || 'px'];\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n var reverseDirectionIndex = reverseDirection.indexOf(pointingDirection);\n return _extends({\n width: '0',\n height: '0',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit),\n borderStyle: 'solid'\n }, borderColor.apply(void 0, Array.from({\n length: 4\n }).map(function (_, index) {\n return index === reverseDirectionIndex ? foregroundColor : backgroundColor;\n })));\n}\n\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formular from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = hue % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n /**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\n};\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/;\nvar rgbaRegex = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*\\)$/;\nvar hslaRegex = /^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor);\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor);\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated along\n * the color wheel.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + parseFloat(degree)) % 360\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(adjustHue);\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, <color>).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(darken);\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(desaturate);\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(lighten);\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1 // The formular is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n });\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha + (color2.alpha - color1.alpha) * (parseFloat(weight) / 1.0)\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string, string> */\n(mix);\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(opacify);\n\n/**\n * Returns black or white (or optional light and dark return colors) for best contrast depending on the luminosity of the given color.\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * }\n */\n\nfunction readableColor(color, lightReturnColor, darkReturnColor) {\n if (lightReturnColor === void 0) {\n lightReturnColor = '#000';\n }\n\n if (darkReturnColor === void 0) {\n darkReturnColor = '#fff';\n }\n\n return getLuminance(color) > 0.179 ? lightReturnColor : darkReturnColor;\n}\n\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(saturate);\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(setHue);\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(setLightness);\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(setSaturation);\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(shade);\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(tint);\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff');\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')},\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 - parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize =\n/*#__PURE__*/\ncurry\n/* ::<number | string, string, string> */\n(transparentize);\n\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Allow single or multiple animations passed\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap$1 = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(positionKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap$1.indexOf(positionKeyword) >= 0) {\n return _extends({\n position: positionKeyword\n }, directionalProperty.apply(void 0, [''].concat(values)));\n } else {\n var firstValue = positionKeyword; // in this case position is actually the first value\n\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same tranisition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\n// Math\n\nexport { curriedAdjustHue as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, curriedDarken as darken, curriedDesaturate as desaturate, directionalProperty, ellipsis, em, fluidRange, fontFace, getLuminance, getValueAndUnit, grayscale, invert, hideText, hideVisually, hiDPI, hsl, hsla, hslToColorString, curriedLighten as lighten, linearGradient, margin, math, curriedMix as mix, modularScale, normalize, curriedOpacify as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem, retinaImage, rgb, rgba, rgbToColorString, curriedSaturate as saturate, curriedSetHue as setHue, curriedSetLightness as setLightness, curriedSetSaturation as setSaturation, curriedShade as shade, size, stripUnit, textInputs, timingFunctions, curriedTint as tint, toColorString, transitions, curriedTransparentize as transparentize, triangle, wordWrap };\n","import { forwardRef } from 'react'\nimport styled from 'styled-components'\n\nconst PlaceholderBase = styled.div`\n width: 100%;\n background: rgba(161, 168, 194, 0.18);\n height: 80px;\n padding: 8px;\n`\n\ntype Props = Record<string, never>\n\nexport default forwardRef<HTMLDivElement, Props>(function Placeholder(props: Props, ref) {\n return (\n <PlaceholderBase {...props} ref={ref}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </PlaceholderBase>\n )\n})\n","import styled, { createGlobalStyle } from 'styled-components'\nimport { normalize } from 'polished'\nimport { forwardRef, Ref } from 'react'\n\nimport Placeholder from './components/Placeholder'\nimport {\n GridValue,\n BackgroundsValue,\n GapXValue,\n GapYValue,\n} from '../../../prop-controllers/descriptors'\nimport { Element } from '../../../react'\nimport { cssGridItem } from '../../utils/cssMediaRules'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\n\nconst Normalize = createGlobalStyle`\n html {\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n box-sizing: inherit;\n }\n\n ${normalize()}\n`\n\nconst Grid = styled.div`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n`\n\nconst GridItem = styled.div`\n display: flex;\n align-items: flex-start;\n ${cssGridItem()}\n`\n\ntype Props = {\n children?: GridValue\n backgrounds?: BackgroundsValue\n rowGap?: GapYValue\n columnGap?: GapXValue\n}\n\nexport default forwardRef(function Page(\n { children, backgrounds, rowGap, columnGap }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <>\n <Normalize />\n <BackgroundsContainer ref={ref} style={{ background: 'white' }} backgrounds={backgrounds}>\n <Grid>\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder />\n )}\n </Grid>\n </BackgroundsContainer>\n </>\n )\n})\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTMuNzQxMiw4LjI5NjcgQzE0LjM1ODIsNi42Mjk3IDE0LjgzOTIsNS4yNTQ3IDE1LjE4NDIsNC4xNjg3IEMxNS41MjkyLDMuMDgzNyAxNS43MDIyLDIuNDE3NyAxNS43MDIyLDIuMTcwNyBDMTUuNzAyMiwxLjkwNDcgMTUuNjQ0MiwxLjY5ODcgMTUuNTI5MiwxLjU1MTcgQzE1LjQxNDIsMS40MDU3IDE1LjI1NjIsMS4zMzI3IDE1LjA1MzIsMS4zMzI3IEMxNC43OTYyLDEuMzMyNyAxNC41MzMyLDEuNTQ1NyAxNC4yNjYyLDEuOTcwNyBDMTMuOTk5MiwyLjM5NjcgMTMuNzA1MiwzLjA4MTcgMTMuMzgzMiw0LjAyNDcgTDEyLjAwMjIsNy45OTQ3IEwxMy43NDEyLDguMjk2NyBaIE0xMS45MDUyLDExLjk5MTcgQzExLjUxMDIsMTEuOTczNyAxMS4xMzQyLDExLjkzMjcgMTAuNzgwMiwxMS44Njc3IEMxMC40MjYyLDExLjgwNDcgMTAuMDg3MiwxMS43MTI3IDkuNzY1MiwxMS41OTM3IEM5LjkxMjIsMTEuODg2NyAxMC4wNDMyLDEyLjE3OTcgMTAuMTU4MiwxMi40NzI3IEMxMC4yNzQyLDEyLjc2NTcgMTAuMzY4MiwxMy4wNTQ3IDEwLjQ0MjIsMTMuMzM4NyBDMTAuNjYyMiwxMy4wNjM3IDEwLjg5NTIsMTIuODEzNyAxMS4xMzgyLDEyLjU4ODcgQzExLjM4MzIsMTIuMzY0NyAxMS42MzgyLDEyLjE2NTcgMTEuOTA1MiwxMS45OTE3IEwxMS45MDUyLDExLjk5MTcgWiBNMTAuMzQ1Miw3LjgyOTcgTDguODU0MiwzLjU0MzcgQzguNDY3MiwyLjQ1NDcgOC4xNjgyLDEuNzQyNyA3Ljk1NjIsMS40MDc3IEM3Ljc0NDIsMS4wNzM3IDcuNTE0MiwwLjkwNjcgNy4yNjYyLDAuOTA2NyBDNy4wNzMyLDAuOTA2NyA2LjkxNjIsMC45Nzk3IDYuNzk3MiwxLjEyNjcgQzYuNjc3MiwxLjI3MjcgNi42MTcyLDEuNDY5NyA2LjYxNzIsMS43MTY3IEM2LjYxNzIsMi4xMzg3IDYuNzc4MiwyLjg3MDcgNy4xMDAyLDMuOTE0NyBDNy40MjMyLDQuOTU4NyA3LjkwNjIsNi4zMjc3IDguNTUwMiw4LjAyMTcgQzguNjA1Miw3LjkyMTcgOC42ODMyLDcuODUwNyA4Ljc4NTIsNy44MDg3IEM4Ljg4NjIsNy43Njc3IDkuMDI0Miw3Ljc0NzcgOS4xOTkyLDcuNzQ3NyBDOS4yNTQyLDcuNzQ3NyA5LjM2NTIsNy43NTI3IDkuNTMxMiw3Ljc2MDcgQzkuNjk2Miw3Ljc3MDcgOS45NjgyLDcuNzkzNyAxMC4zNDUyLDcuODI5NyBMMTAuMzQ1Miw3LjgyOTcgWiBNOC45OTIyLDE0LjQ2MzcgQzkuMTQ4MiwxNC40NjM3IDkuMjkxMiwxNC4zOTM3IDkuNDIwMiwxNC4yNTE3IEM5LjU0OTIsMTQuMTA5NyA5LjYxMzIsMTMuOTU2NyA5LjYxMzIsMTMuNzkxNyBDOS42MTMyLDEzLjYxNzcgOS40ODcyLDEzLjIxMjcgOS4yMzQyLDEyLjU3NTcgQzguOTgwMiwxMS45Mzk3IDguNjY1MiwxMS4zMTQ3IDguMjg4MiwxMC43MDA3IEM4LjAxMjIsMTAuMjQyNyA3Ljc0MDIsOS44OTc3IDcuNDczMiw5LjY2MzcgQzcuMjA2Miw5LjQyOTcgNi45NTMyLDkuMzEzNyA2LjcxNDIsOS4zMTM3IEM2LjUyMDIsOS4zMTM3IDYuMzA2Miw5LjQzNDcgNi4wNzIyLDkuNjc2NyBDNS44MzcyLDkuOTE5NyA1LjcyMDIsMTAuMTQ2NyA1LjcyMDIsMTAuMzU3NyBDNS43MjAyLDEwLjU3NjcgNS44MzUyLDEwLjkwNjcgNi4wNjUyLDExLjM0NTcgQzYuMjk1MiwxMS43ODU3IDYuNjAzMiwxMi4yNTI3IDYuOTkwMiwxMi43NDc3IEM3LjM5NTIsMTMuMjg3NyA3Ljc3NzIsMTMuNzA4NyA4LjEzNjIsMTQuMDEwNyBDOC40OTUyLDE0LjMxMzcgOC43ODAyLDE0LjQ2MzcgOC45OTIyLDE0LjQ2MzcgTDguOTkyMiwxNC40NjM3IFogTTQuODUwMiwxNC4xMzQ3IEM0Ljk3OTIsMTQuMjkwNyA1LjE1ODIsMTQuNTE5NyA1LjM4ODIsMTQuODIxNyBDNS45OTYyLDE1LjY1NDcgNi41NTcyLDE2LjA3MTcgNy4wNzMyLDE2LjA3MTcgQzcuMjQ3MiwxNi4wNzE3IDcuNDA0MiwxNi4wMTY3IDcuNTQyMiwxNS45MDY3IEM3LjY4MDIsMTUuNzk2NyA3Ljc0OTIsMTUuNjgyNyA3Ljc0OTIsMTUuNTYzNyBDNy43NDkyLDE1LjQyNTcgNy42NTcyLDE1LjE5NjcgNy40NzMyLDE0Ljg3NjcgQzcuMjg5MiwxNC41NTU3IDcuMDM2MiwxNC4xOTQ3IDYuNzE0MiwxMy43OTE3IEM2LjM0NTIsMTMuMzI0NyA2LjAzOTIsMTIuOTgzNyA1Ljc5NjIsMTIuNzY3NyBDNS41NTIyLDEyLjU1MjcgNS4zNTYyLDEyLjQ0NDcgNS4yMDkyLDEyLjQ0NDcgQzQuODg3MiwxMi40NDQ3IDQuNTkwMiwxMi42MTY3IDQuMzE4MiwxMi45NjA3IEM0LjA0NzIsMTMuMzAzNyAzLjkxMTIsMTMuNzA4NyAzLjkxMTIsMTQuMTc1NyBDMy45MTEyLDE0LjU1MTcgNC4wMDUyLDE0Ljk3MDcgNC4xOTQyLDE1LjQzMjcgQzQuMzgzMiwxNS44OTU3IDQuNjU3MiwxNi4zNTk3IDUuMDE1MiwxNi44MjY3IEM1LjU1ODIsMTcuNTUwNyA2LjIzMzIsMTguMTA2NyA3LjAzODIsMTguNDk1NyBDNy44NDQyLDE4Ljg4NTcgOC43MzQyLDE5LjA3OTcgOS43MTAyLDE5LjA3OTcgQzExLjUwNTIsMTkuMDc5NyAxMy4wMDgyLDE4LjQxMzcgMTQuMjE4MiwxNy4wODE3IEMxNS40MjgyLDE1Ljc0ODcgMTYuMDMzMiwxNC4wNzk3IDE2LjAzMzIsMTIuMDczNyBDMTYuMDMzMiwxMS40NjA3IDE1Ljk4NzIsMTAuOTczNyAxNS44OTUyLDEwLjYxMDcgQzE1LjgwNDIsMTAuMjQ5NyAxNS42NTEyLDkuOTg1NyAxNS40MzkyLDkuODIxNyBDMTUuMDYyMiw5LjUwOTcgMTQuMzI4Miw5LjIzMDcgMTMuMjM3Miw4Ljk4MzcgQzEyLjE0NjIsOC43MzU3IDExLjAwODIsOC42MTI3IDkuODIwMiw4LjYxMjcgQzkuNDg5Miw4LjYxMjcgOS4yNTQyLDguNjY3NyA5LjExNjIsOC43Nzc3IEM4Ljk3ODIsOC44ODc3IDguOTA5Miw5LjA3NDcgOC45MDkyLDkuMzQwNyBDOC45MDkyLDkuOTYzNyA5LjI1OTIsMTAuNDE0NyA5Ljk1ODIsMTAuNjkzNyBDMTAuNjU4MiwxMC45NzM3IDExLjc5MDIsMTEuMTEyNyAxMy4zNTUyLDExLjExMjcgTDEzLjkyMTIsMTEuMTEyNyBDMTQuMDUwMiwxMS4xMTI3IDE0LjE1MzIsMTEuMTYwNyAxNC4yMzEyLDExLjI1NjcgQzE0LjMwOTIsMTEuMzUyNyAxNC4zNjMyLDExLjQ5NzcgMTQuMzkwMiwxMS42ODk3IEMxNC4yMzMyLDExLjgzNjcgMTMuOTEyMiwxMi4wMDM3IDEzLjQyNDIsMTIuMTkxNyBDMTIuOTM2MiwxMi4zNzg3IDEyLjU2MzIsMTIuNTY0NyAxMi4zMDUyLDEyLjc0NzcgQzExLjc1NDIsMTMuMTUwNyAxMS4zMDkyLDEzLjYyODcgMTAuOTczMiwxNC4xODI3IEMxMC42MzcyLDE0LjczNjcgMTAuNDY5MiwxNS4yNjA3IDEwLjQ2OTIsMTUuNzU1NyBDMTAuNDY5MiwxNi4wNTc3IDEwLjU0MDIsMTYuNDIxNyAxMC42ODMyLDE2Ljg0NzcgQzEwLjgyNjIsMTcuMjczNyAxMC44OTcyLDE3LjUzNjcgMTAuODk3MiwxNy42Mzc3IEwxMC44OTcyLDE3LjczMzcgTDEwLjg2OTIsMTcuODU3NyBDMTAuNDY1MiwxNy44Mjk3IDEwLjE0NTIsMTcuNTkzNyA5LjkxMDIsMTcuMTQ5NyBDOS42NzUyLDE2LjcwNTcgOS41NTgyLDE2LjExMjcgOS41NTgyLDE1LjM3MDcgTDkuNTU4MiwxNS4yNDc3IEM5LjQ4NDIsMTUuMzExNyA5LjQxMzIsMTUuMzU3NyA5LjM0NDIsMTUuMzg0NyBDOS4yNzUyLDE1LjQxMjcgOS4xOTkyLDE1LjQyNTcgOS4xMTYyLDE1LjQyNTcgQzkuMDMzMiwxNS40MjU3IDguOTU1MiwxNS40MTk3IDguODgyMiwxNS40MDQ3IEM4LjgwNzIsMTUuMzkxNyA4LjcyNTIsMTUuMzcwNyA4LjYzMzIsMTUuMzQzNyBDOC42NjAyLDE1LjQ0NDcgOC42ODEyLDE1LjU0MjcgOC42OTUyLDE1LjYzODcgQzguNzA5MiwxNS43MzQ3IDguNzE2MiwxNS44MTA3IDguNzE2MiwxNS44NjU3IEM4LjcxNjIsMTYuMjA0NyA4LjU4MjIsMTYuNDk1NyA4LjMxNTIsMTYuNzM3NyBDOC4wNDgyLDE2Ljk4MDcgNy43MzEyLDE3LjEwMTcgNy4zNjMyLDE3LjEwMTcgQzYuNzgzMiwxNy4xMDE3IDYuMTk0MiwxNi44MTk3IDUuNTk1MiwxNi4yNTY3IEM0Ljk5NzIsMTUuNjkzNyA0LjY5ODIsMTUuMTQyNyA0LjY5ODIsMTQuNjAxNyBDNC42OTgyLDE0LjUwMDcgNC43MTAyLDE0LjQxMTcgNC43MzMyLDE0LjMzMzcgQzQuNzU1MiwxNC4yNTU3IDQuNzk1MiwxNC4xODk3IDQuODUwMiwxNC4xMzQ3IEw0Ljg1MDIsMTQuMTM0NyBaIE0xNC43MzUyLDguNTI5NyBDMTUuNTY0Miw4LjY4NjcgMTYuMTQ4Miw5LjAzMzcgMTYuNDg5Miw5LjU3MzcgQzE2LjgyOTIsMTAuMTE0NyAxNy4wMDAyLDEwLjk2NjcgMTcuMDAwMiwxMi4xMjk3IEMxNy4wMDAyLDE0LjQzNjcgMTYuMzAzMiwxNi4zMjU3IDE0LjkwODIsMTcuNzk1NyBDMTMuNTEzMiwxOS4yNjQ3IDExLjczMDIsMTkuOTk5NyA5LjU1ODIsMTkuOTk5NyBDOC43MDIyLDE5Ljk5OTcgNy44NzEyLDE5Ljg0NjcgNy4wNjYyLDE5LjUzOTcgQzYuMjYwMiwxOS4yMzM3IDUuNTY4MiwxOC44MDQ3IDQuOTg4MiwxOC4yNTU3IEM0LjMyNTIsMTcuNjUwNyAzLjgyODIsMTcuMDEyNyAzLjQ5NzIsMTYuMzM5NyBDMy4xNjUyLDE1LjY2NjcgMy4wMDAyLDE0Ljk3NzcgMy4wMDAyLDE0LjI3MjcgQzMuMDAwMiwxMy40ODQ3IDMuMTcwMiwxMi44NzU3IDMuNTExMiwxMi40NDQ3IEMzLjg1MTIsMTIuMDE0NyA0LjM4OTIsMTEuNzIxNyA1LjEyNjIsMTEuNTY2NyBDNC45ODgyLDExLjI0NTcgNC44ODcyLDEwLjk3NTcgNC44MjIyLDEwLjc1NTcgQzQuNzU4MiwxMC41MzU3IDQuNzI1MiwxMC4zNjY3IDQuNzI1MiwxMC4yNDc3IEM0LjcyNTIsOS44MzU3IDQuOTQ0Miw5LjQxNDcgNS4zODIyLDguOTgzNyBDNS44MTkyLDguNTUyNyA2LjIzMTIsOC4zMzc3IDYuNjE3Miw4LjMzNzcgQzYuNzgzMiw4LjMzNzcgNi45NTcyLDguMzY3NyA3LjE0MjIsOC40MjY3IEM3LjMyNjIsOC40ODY3IDcuNTM3Miw4LjU4NTcgNy43NzcyLDguNzIyNyBDNy4wNjgyLDYuNzI2NyA2LjU1MzIsNS4xODU3IDYuMjMxMiw0LjEwMDcgQzUuOTA4MiwzLjAxNDcgNS43NDcyLDIuMjY2NyA1Ljc0NzIsMS44NTQ3IEM1Ljc0NzIsMS4yODY3IDUuODk0MiwwLjgzNTcgNi4xODkyLDAuNTAxNyBDNi40ODQyLDAuMTY3NyA2Ljg4NDIsLTAuMDAwMyA3LjM5MDIsLTAuMDAwMyBDOC4yNTUyLC0wLjAwMDMgOS4zNTEyLDEuOTIyNyAxMC42NzYyLDUuNzY5NyBDMTAuOTA2Miw2LjQyODcgMTEuMDgxMiw2LjkzNjcgMTEuMjAxMiw3LjI5NDcgQzExLjMwMzIsNy4wMDk3IDExLjQ0NTIsNi42MDc3IDExLjYyOTIsNi4wODU3IEMxMi45NTUyLDIuMjc1NyAxNC4wOTUyLDAuMzcwNyAxNS4wNTMyLDAuMzcwNyBDMTUuNTIyMiwwLjM3MDcgMTUuODk3MiwwLjUyODcgMTYuMTc5MiwwLjg0NDcgQzE2LjQ1OTIsMS4xNjA3IDE2LjU5OTIsMS41ODQ3IDE2LjU5OTIsMi4xMTU3IEMxNi41OTkyLDIuNTE4NyAxNi40NDUyLDMuMjU1NyAxNi4xMzcyLDQuMzI2NyBDMTUuODI4Miw1LjM5ODcgMTUuMzYxMiw2Ljc5OTcgMTQuNzM1Miw4LjUyOTcgTDE0LjczNTIsOC41Mjk3IFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguMjgxLDExLjQzODMgTDE2LjEzMiwxMC4wMDAzIEwxOC4yODEsOC41NjIzIEwxOC4yODEsMTEuNDM4MyBaIE0xMC44NTksMTcuNTM0MyBMMTAuODU5LDEzLjUyNjMgTDE0LjU4NiwxMS4wMzQzIEwxNy41OTQsMTMuMDQ1MyBMMTAuODU5LDE3LjUzNDMgWiBNMTAsMTIuMDMzMyBMNi45NjEsMTAuMDAwMyBMMTAsNy45NjYzIEwxMy4wNCwxMC4wMDAzIEwxMCwxMi4wMzMzIFogTTkuMTQxLDE3LjUzNDMgTDIuNDA3LDEzLjA0NTMgTDUuNDE1LDExLjAzNDMgTDkuMTQxLDEzLjUyNjMgTDkuMTQxLDE3LjUzNDMgWiBNMS43MTksOC41NjIzIEwzLjg2OSwxMC4wMDAzIEwxLjcxOSwxMS40MzgzIEwxLjcxOSw4LjU2MjMgWiBNOS4xNDEsMi40NjUzIEw5LjE0MSw2LjQ3NDMgTDUuNDE1LDguOTY2MyBMMi40MDcsNi45NTQzIEw5LjE0MSwyLjQ2NTMgWiBNMTAuODU5LDIuNDY1MyBMMTcuNTk0LDYuOTU0MyBMMTQuNTg2LDguOTY2MyBMMTAuODU5LDYuNDc0MyBMMTAuODU5LDIuNDY1MyBaIE0xOS45ODUsNi44MDMzIEMxOS45NDQsNi41ODAzIDE5LjgxMiw2LjM2MDMgMTkuNjE3LDYuMjM4MyBMMTAuNDc3LDAuMTQ0MyBDMTAuMTg4LC0wLjA0NzcgOS44MTIsLTAuMDQ3NyA5LjUyMywwLjE0NDMgTDAuMzgzLDYuMjM4MyBDMC4xNDgsNi4zOTQzIDAsNi42NzEzIDAsNi45NTMzIEwwLDEzLjA0NjMgQzAsMTMuMzI4MyAwLjE0OCwxMy42MDYzIDAuMzgzLDEzLjc2MTMgTDkuNTIzLDE5Ljg1NTMgQzkuNjY4LDE5Ljk1MjMgOS44MzQsMjAuMDAwMyAxMCwyMC4wMDAzIEMxMC4xNjcsMjAuMDAwMyAxMC4zMzMsMTkuOTUyMyAxMC40NzcsMTkuODU1MyBMMTkuNjE3LDEzLjc2MTMgQzE5Ljg1NCwxMy42MTMzIDIwLDEzLjMyMzMgMjAsMTMuMDQ2MyBMMjAsNi45NTMzIEMyMC4wMDEsNi45MDIzIDE5Ljk5Niw2Ljg1MzMgMTkuOTg1LDYuODAzMyBMMTkuOTg1LDYuODAzMyBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTkuNzk3LDcuOTg4MyBDMTkuNjY0LDcuMzQ0MyAxOS40NjgsNi43MTQzIDE5LjIxMiw2LjEwODMgQzE4Ljk2MSw1LjUxMzMgMTguNjUyLDQuOTQ1MyAxOC4yOSw0LjQxMDMgQzE1LjIwMywtMC4xNjg3IDguOTg4LC0xLjM3NzcgNC40MDksMS43MDkzIEMzLjM0NCwyLjQyNzMgMi40MjcsMy4zNDQzIDEuNzA5LDQuNDEwMyBDMC45NzcsNS40OTIzIDAuNDY1LDYuNzA4MyAwLjIwMiw3Ljk4ODMgQy0wLjA2Nyw5LjMxNzMgLTAuMDY3LDEwLjY4NjMgMC4yMDIsMTIuMDE1MyBDMC40NjYsMTMuMjk1MyAwLjk3OCwxNC41MTAzIDEuNzA5LDE1LjU5MzMgQzIuNDI3LDE2LjY1NzMgMy4zNDMsMTcuNTc0MyA0LjQwNywxOC4yOTIzIEM0Ljk0MywxOC42NTMzIDUuNTEyLDE4Ljk2MjMgNi4xMDcsMTkuMjE0MyBDOC41OTYsMjAuMjYxMyAxMS40MDIsMjAuMjYxMyAxMy44OTMsMTkuMjE0MyBDMTQuNDg2LDE4Ljk2MjMgMTUuMDU2LDE4LjY1MzMgMTUuNTkxLDE4LjI5MjMgQzE2LjY1NSwxNy41NzQzIDE3LjU3MiwxNi42NTgzIDE4LjI5LDE1LjU5MzMgQzE5LjAyMiwxNC41MTAzIDE5LjUzMywxMy4yOTUzIDE5Ljc5NywxMi4wMTUzIEMyMC4wNjcsMTAuNjg2MyAyMC4wNjcsOS4zMTczIDE5Ljc5Nyw3Ljk4ODMgTDE5Ljc5Nyw3Ljk4ODMgWiBNMTguNTM3LDkuOTE1MyBDMTYuNTgsOS41MjIzIDE0LjU3NSw5LjQyNzMgMTIuNTksOS42MzUzIEMxMi41MjgsOS40OTAzIDEyLjQ2OSw5LjM0MjMgMTIuNDA4LDkuMTk2MyBDMTIuMjI2LDguNzc3MyAxMi4wMzksOC4zNjMzIDExLjg0LDcuOTU2MyBDMTMuNzAxLDcuMjgwMyAxNS4zNDYsNi4xMTIzIDE2LjU5OCw0LjU3NzMgQzE3LjgzOCw2LjA4MTMgMTguNTI0LDcuOTY2MyAxOC41NCw5LjkxNTMgTDE4LjUzNyw5LjkxNTMgWiBNMTUuNjQxLDMuNTkzMyBDMTQuNDkzLDUuMDQ0MyAxMi45NDEsNi4xMjAzIDExLjE3OSw2LjY4MzMgQzEwLjIzLDQuOTUyMyA5LjE2MywzLjI4ODMgNy45ODcsMS43MDIzIEMxMC42OTMsMS4wNDMzIDEzLjU1MiwxLjc0OTMgMTUuNjQxLDMuNTkyMyBMMTUuNjQxLDMuNTkzMyBaIE02LjM1NywyLjI3OTMgQzcuNTA2LDMuODU2MyA4LjU2Niw1LjQ5OTMgOS41MjgsNy4xOTgzIEM2Ljk1NCw3Ljg3NzMgNC4zMDUsOC4yMjczIDEuNjQzLDguMjQxMyBDMi4xOTUsNS42MjYzIDMuOTM5LDMuNDE5MyA2LjM1NywyLjI3OTMgTDYuMzU3LDIuMjc5MyBaIE0xLjQ2MSwxMC4wMDAzIEMxLjQ2MSw5LjkwOTMgMS40NjUsOS44MTgzIDEuNDY4LDkuNzI3MyBDNC40MzMsOS43MzkzIDcuMzg1LDkuMzI5MyAxMC4yMzUsOC41MTAzIEMxMC40OCw4Ljk4OTMgMTAuNzE0LDkuNDc3MyAxMC45MjgsOS45NjQzIEMxMC44MTYsOS45OTQzIDEwLjcwMywxMC4wMjkzIDEwLjU5MiwxMC4wNjYzIEM3LjcwNCwxMS4xMDEzIDUuMjU0LDEzLjA5MDMgMy42NDYsMTUuNzAyMyBDMi4yMzgsMTQuMTM2MyAxLjQ2MiwxMi4xMDUzIDEuNDY1LDEwLjAwMDMgTDEuNDYxLDEwLjAwMDMgWiBNMTAuMDA1LDE4LjU0NTMgQzguMDE5LDE4LjU0ODMgNi4wOTQsMTcuODU0MyA0LjU2NSwxNi41ODczIEM0LjY3NywxNi42NzczIDQuNzU2LDE2LjczNzMgNC43NTYsMTYuNzM3MyBDNC43NTYsMTYuNzM3MyA2LjM5MywxMy4xNjczIDExLjQ1OCwxMS40MDEzIEMxMS40NzcsMTEuMzk0MyAxMS40OTcsMTEuMzg5MyAxMS41MTYsMTEuMzg0MyBDMTIuMzI3LDEzLjQ4MzMgMTIuOTM4LDE1LjY1MzMgMTMuMzM5LDE3Ljg2ODMgQzEyLjI4NCwxOC4zMTUzIDExLjE1MSwxOC41NDYzIDEwLjAwNSwxOC41NDUzIEwxMC4wMDUsMTguNTQ1MyBaIE0xNC43NzcsMTcuMDgyMyBDMTQuNCwxNS4wMDYzIDEzLjg0MywxMi45NjUzIDEzLjExNSwxMC45ODMzIEMxNC44OTYsMTAuNzE5MyAxNi43MTIsMTAuODQ2MyAxOC40MzgsMTEuMzU2MyBDMTguMDYyLDEzLjY4OTMgMTYuNzM3LDE1Ljc2MjMgMTQuNzc3LDE3LjA4MzMgTDE0Ljc3NywxNy4wODIzIFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguODk2IDBIMS4xMDRDLjQ5NCAwIDAgLjQ5NCAwIDEuMTA0djE3Ljc5MkMwIDE5LjUwNi40OTQgMjAgMS4xMDQgMjBoOS41OHYtNy43MzRIOC4wODZWOS4yMzhoMi41OThWNy4wMWMwLTIuNTgzIDEuNTc3LTMuOTg5IDMuODgxLTMuOTg5IDEuMTA0IDAgMi4wNTMuMDgyIDIuMzMuMTE5djIuNjk5bC0xLjU5LjAwMWMtMS4yNTQgMC0xLjQ5Ni41OTYtMS40OTYgMS40N3YxLjkyOGgyLjk5N2wtLjM5IDMuMDI4aC0yLjYwN1YyMGg1LjA4N2MuNjEgMCAxLjEwNC0uNDk0IDEuMTA0LTEuMTA0VjEuMTA0QzIwIC40OTQgMTkuNTA2IDAgMTguODk2IDAiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOS45OTU4LDAuMDAyOSBDNC42MDU4LC0wLjEyNTEgMC4xMzE4LDQuMTM4OSAwLjAwMjgsOS41Mjg5IEMtMC4xMDEyLDEzLjg3NzkgMi42ODU4LDE3Ljc3MDkgNi44MzU4LDE5LjA3NDkgQzcuMDkzOCwxOS4xNzU5IDcuMzgzOCwxOS4wNDg5IDcuNDg0OCwxOC43OTE5IEM3LjUwNzgsMTguNzMxOSA3LjUxOTgsMTguNjY4OSA3LjUxODgsMTguNjA0OSBDNy41MTg4LDE4LjM3MDkgNy41MDk4LDE3Ljc1NTkgNy41MDU4LDE2LjkzOTkgQzQuNzIzOCwxNy41Mjk5IDQuMTM2OCwxNS42MjY5IDQuMTM2OCwxNS42MjY5IEMzLjk0OTgsMTUuMDMyOSAzLjU1NTgsMTQuNTI0OSAzLjAyNjgsMTQuMTk1OSBDMi4xMTc4LDEzLjU4ODkgMy4wOTU4LDEzLjYwMTkgMy4wOTU4LDEzLjYwMTkgQzMuNzMzOCwxMy42ODQ5IDQuMjk3OCwxNC4wNTY5IDQuNjI2OCwxNC42MDg5IEM1LjIxMTgsMTUuNjI3OSA2LjUwNTgsMTUuOTg5OSA3LjUzNTgsMTUuNDIyOSBDNy41ODI4LDE0LjkyMzkgNy44MDg4LDE0LjQ1ODkgOC4xNzE4LDE0LjExMzkgQzUuOTUwOCwxMy44NjY5IDMuNjE3OCwxMy4wMjM5IDMuNjE3OCw5LjI3NjkgQzMuNjAzOCw4LjMwMTkgMy45NzM4LDcuMzU4OSA0LjY0NTgsNi42NTE5IEM0LjM0MDgsNS44MDg5IDQuMzc1OCw0Ljg3OTkgNC43NDM4LDQuMDYyOSBDNC43NDM4LDQuMDYyOSA1LjU4MzgsMy43OTg5IDcuNDkzOCw1LjA2MTkgQzkuMTMzOCw0LjYyMzkgMTAuODU5OCw0LjYyMzkgMTIuNTAwOCw1LjA2MTkgQzE0LjQwOTgsMy43OTU5IDE1LjI0NzgsNC4wNjI5IDE1LjI0NzgsNC4wNjI5IEMxNS42MTY4LDQuODc4OSAxNS42NTE4LDUuODA4OSAxNS4zNDY4LDYuNjUxOSBDMTYuMDE5OCw3LjM1ODkgMTYuMzg5OCw4LjMwMTkgMTYuMzc0OCw5LjI3NjkgQzE2LjM3NDgsMTMuMDM2OSAxNC4wMzY4LDEzLjg2NDkgMTEuODA4OCwxNC4xMDY5IEMxMi4yOTA4LDE0LjU4MTkgMTIuNTM4OCwxNS4yNDQ5IDEyLjQ4ODgsMTUuOTE4OSBDMTIuNDg4OCwxNy4yMjg5IDEyLjQ3NTgsMTguMjgxOSAxMi40NzU4LDE4LjYwNDkgQzEyLjQ3MTgsMTguODc4OSAxMi42ODk4LDE5LjEwNjkgMTIuOTY0OCwxOS4xMTA5IEMxMy4wMzI4LDE5LjExMTkgMTMuMDk5OCwxOS4wOTk5IDEzLjE2MzgsMTkuMDczOSBDMTguMzA3OCwxNy40NTY5IDIxLjE2NTgsMTEuOTc2OSAxOS41NDc4LDYuODMyOSBDMTguMjQxOCwyLjY4MjkgMTQuMzQ2OCwtMC4xMDMxIDkuOTk1OCwwLjAwMjkiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUuMzM4IDMuNDYyYTEuMiAxLjIgMCAxIDAgMCAyLjQgMS4yIDEuMiAwIDAgMCAwLTIuNE0xMCAxMy4zMzJhMy4zMzMgMy4zMzMgMCAxIDEgMC02LjY2NCAzLjMzMyAzLjMzMyAwIDAgMSAwIDYuNjY1bTAtOC40NjhhNS4xMzUgNS4xMzUgMCAxIDAgMCAxMC4yNyA1LjEzNSA1LjEzNSAwIDAgMCAwLTEwLjI3TTEwIDBDNy4yODQgMCA2Ljk0My4wMTIgNS44NzcuMDYgNC44MTMuMTA5IDQuMDg2LjI3OCAzLjQ1LjUyNWE0LjkxOSA0LjkxOSAwIDAgMC0xLjc3MiAxLjE1M0E0LjkwNSA0LjkwNSAwIDAgMCAuNTI1IDMuNDVDLjI3OCA0LjA4Ni4xMDkgNC44MTMuMDYgNS44NzcuMDExIDYuOTQ0IDAgNy4yODQgMCAxMHMuMDExIDMuMDU3LjA2IDQuMTIzYy4wNDkgMS4wNjUuMjE4IDEuNzkuNDY1IDIuNDI4YTQuODk4IDQuODk4IDAgMCAwIDEuMTUzIDEuNzcgNC44ODIgNC44ODIgMCAwIDAgMS43NzIgMS4xNTRjLjYzNi4yNDggMS4zNjMuNDE3IDIuNDI3LjQ2NSAxLjA2Ni4wNDggMS40MDcuMDYgNC4xMjMuMDZzMy4wNTYtLjAxMiA0LjEyMy0uMDZjMS4wNjUtLjA0OCAxLjc5MS0uMjE3IDIuNDI3LS40NjVhNC44NyA0Ljg3IDAgMCAwIDEuNzcxLTEuMTU0IDQuODg4IDQuODg4IDAgMCAwIDEuMTU0LTEuNzdjLjI0Ny0uNjM3LjQxNi0xLjM2My40NjUtMi40MjguMDQ4LTEuMDY2LjA2LTEuNDA3LjA2LTQuMTIzcy0uMDEyLTMuMDU2LS4wNi00LjEyM2MtLjA0OS0xLjA2NC0uMjE4LTEuNzkxLS40NjUtMi40MjdhNC44OTUgNC44OTUgMCAwIDAtMS4xNTQtMS43NzJBNC45MDcgNC45MDcgMCAwIDAgMTYuNTUuNTI1QzE1LjkxNC4yNzggMTUuMTg4LjEwOSAxNC4xMjMuMDYgMTMuMDU2LjAxMiAxMi43MTYgMCAxMCAwbTAgMS44MDJjMi42NyAwIDIuOTg2LjAxIDQuMDQxLjA1OC45NzUuMDQ1IDEuNTA1LjIwNyAxLjg1Ny4zNDUuNDY2LjE4Ljc5OS4zOTggMS4xNDkuNzQ4LjM1MS4zNDkuNTY3LjY4My43NDkgMS4xNDkuMTM3LjM1My4yOTkuODgyLjM0NCAxLjg1Ny4wNDggMS4wNTUuMDU4IDEuMzcuMDU4IDQuMDRzLS4wMSAyLjk4Ny0uMDU4IDQuMDQyYy0uMDQ1Ljk3NS0uMjA3IDEuNTA0LS4zNDQgMS44NTdhMy4xMSAzLjExIDAgMCAxLS43NDkgMS4xNWMtLjM1LjM1LS42ODMuNTY2LTEuMTQ5Ljc0OC0uMzUyLjEzNy0uODgyLjMtMS44NTcuMzQ0LTEuMDU1LjA0OS0xLjM3LjA1OC00LjA0MS4wNTgtMi42NyAwLTIuOTg3LS4wMS00LjA0MS0uMDU4LS45NzUtLjA0NC0xLjUwNC0uMjA3LTEuODU3LS4zNDRhMy4xMDQgMy4xMDQgMCAwIDEtMS4xNS0uNzQ4IDMuMTMzIDMuMTMzIDAgMCAxLS43NDgtMS4xNWMtLjEzNy0uMzUzLS4zLS44ODItLjM0NC0xLjg1Ny0uMDQ4LTEuMDU1LS4wNTgtMS4zNzEtLjA1OC00LjA0MSAwLTIuNjcuMDEtMi45ODYuMDU4LTQuMDQxLjA0NC0uOTc1LjIwNy0xLjUwNC4zNDQtMS44NTcuMTgyLS40NjYuMzk5LS44Ljc0OC0xLjE1LjM1LS4zNS42ODMtLjU2NiAxLjE1LS43NDcuMzUzLS4xMzguODgyLS4zIDEuODU3LS4zNDVDNy4wMTQgMS44MTIgNy4zMyAxLjgwMiAxMCAxLjgwMiIvPgo8L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMC41MTYsMTkuNjM4OSBMNC40MTIsMTkuNjM4OSBMNC40MTIsNy4yOTU5IEwwLjUxNiw3LjI5NTkgTDAuNTE2LDE5LjYzODkgWiBNMi4zNjUsNS43NTE5IEwyLjMzNyw1Ljc1MTkgQzEuMTUyLDUuODQ2OSAwLjExNCw0Ljk2MjkgMC4wMTksMy43NzY5IEMwLjAxNCwzLjcyMTkgMC4wMTIsMy42NjY5IDAuMDEyLDMuNjExOSBDLTAuMTE4LDIuMzA2OSAwLjgzNCwxLjE0MjkgMi4xNCwxLjAxMTkgQzMuNDQ2LDAuODgwOSA0LjYxLDEuODMzOSA0Ljc0LDMuMTM5OSBDNC44Nyw0LjQ0NTkgMy45MTgsNS42MDk5IDIuNjEyLDUuNzM5OSBDMi41Myw1Ljc0ODkgMi40NDcsNS43NTE5IDIuMzY1LDUuNzUxOSBMMi4zNjUsNS43NTE5IFogTTIwLDE5LjYzOTkgTDE1LjU4MywxOS42Mzk5IEwxNS41ODMsMTMuMjUxOSBDMTUuNTgzLDExLjU3OTkgMTQuODkxLDEwLjQzNTkgMTMuMzcyLDEwLjQzNTkgQzEyLjQxOCwxMC40MzU5IDExLjU2OSwxMS4wNDM5IDExLjI2MiwxMS45NDc5IEMxMS4xNzIsMTIuMjc1OSAxMS4xNCwxMi42MTc5IDExLjE3MiwxMi45NTY5IEwxMS4xNzIsMTkuNjM5OSBMNi43OTEsMTkuNjM5OSBDNi43OTEsMTkuNjM5OSA2Ljg0Nyw4LjMyNDkgNi43OTEsNy4yOTU5IEwxMS4xNjcsNy4yOTU5IEwxMS4xNjcsOS4yMzI5IEMxMS40MjYsOC4zODY5IDEyLjgyNCw3LjE3NjkgMTUuMDU1LDcuMTc2OSBDMTcuODI0LDcuMTc2OSAyMCw4Ljk1MjkgMjAsMTIuNzc1OSBMMjAsMTkuNjM5OSBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMi4zNzE2LDUuMjY0MiBDMi4zOTY2LDUuMDE2MiAyLjMwMjYsNC43NzIyIDIuMTE5Niw0LjYwNTIgTDAuMjUxNiwyLjMzOTIgTDAuMjUxNiwyLjAwMDIgTDYuMDUwNiwyLjAwMDIgTDEwLjUzMjYsMTEuOTA1MiBMMTQuNDcyNiwyLjAwMDIgTDE5Ljk5OTYsMi4wMDAyIEwxOS45OTk2LDIuMzM5MiBMMTguNDAzNiwzLjg4MTIgQzE4LjI2NTYsMy45ODcyIDE4LjE5NzYsNC4xNjAyIDE4LjIyNTYsNC4zMzIyIEwxOC4yMjU2LDE1LjY2NzIgQzE4LjE5NzYsMTUuODM5MiAxOC4yNjU2LDE2LjAxMzIgMTguNDAzNiwxNi4xMTkyIEwxOS45NjI2LDE3LjY2MTIgTDE5Ljk2MjYsMTguMDAwMiBMMTIuMTE5NiwxOC4wMDAyIEwxMi4xMTk2LDE3LjY2MTIgTDEzLjczNDYsMTYuMDgxMiBDMTMuODkzNiwxNS45MjEyIDEzLjg5MzYsMTUuODc0MiAxMy44OTM2LDE1LjYzMDIgTDEzLjg5MzYsNi40NjgyIEw5LjQwMjYsMTcuOTYyMiBMOC43OTU2LDE3Ljk2MjIgTDMuNTY2Niw2LjQ2ODIgTDMuNTY2NiwxNC4xNzIyIEMzLjUyMjYsMTQuNDk1MiAzLjYyOTYsMTQuODIxMiAzLjg1NjYsMTUuMDU2MiBMNS45NTY2LDE3LjYyNDIgTDUuOTU2NiwxNy45NjIyIEwtMC4wMDA0LDE3Ljk2MjIgTC0wLjAwMDQsMTcuNjI0MiBMMi4xMDA2LDE1LjA1NjIgQzIuMzI1NiwxNC44MjEyIDIuNDI1NiwxNC40OTMyIDIuMzcxNiwxNC4xNzIyIEwyLjM3MTYsNS4yNjQyIFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOS45OTQ5LC0wLjAwMDEgQzQuNDc0OSwtMC4wMDAxIC0wLjAwMDEsNC40NzU5IC0wLjAwMDEsOS45OTU5IEMtMC4wMDAxLDEzLjk2NDkgMi4zNDg5LDE3LjU1NzkgNS45ODM5LDE5LjE1MDkgQzUuOTQwOSwxOC4zODA5IDUuOTk4OSwxNy42MDk5IDYuMTU1OSwxNi44NTQ5IEM2LjM0ODksMTYuMDQzOSA3LjQ0MTksMTEuNDA5OSA3LjQ0MTksMTEuNDA5OSBDNy4yMjQ5LDEwLjkxMDkgNy4xMTY5LDEwLjM3MDkgNy4xMjI5LDkuODI2OSBDNy4xMjI5LDguMzQ1OSA3Ljk4MjksNy4yMzk5IDkuMDQ5OSw3LjIzOTkgQzkuNzg5OSw3LjIyODkgMTAuMzk3OSw3LjgxOTkgMTAuNDA4OSw4LjU1OTkgQzEwLjQwODksOC42MjA5IDEwLjQwNTksOC42ODA5IDEwLjM5ODksOC43NDA5IEMxMC4yMDU5LDkuOTQ0OSA5LjkxMDksMTEuMTI5OSA5LjUxNTksMTIuMjg0OSBDOS4zMDQ5LDEzLjExMDkgOS44MDM5LDEzLjk1MjkgMTAuNjMwOSwxNC4xNjQ5IEMxMC43ODE5LDE0LjIwMjkgMTAuOTM3OSwxNC4yMTc5IDExLjA5MzksMTQuMjA5OSBDMTIuOTg3OSwxNC4yMDk5IDE0LjI2MzksMTEuNzc3OSAxNC4yNjM5LDguODk1OSBDMTQuMjYzOSw2LjcwNTkgMTIuNzg4OSw1LjA2NTkgMTAuMTAzOSw1LjA2NTkgQzcuNDkyOSw0Ljk2MTkgNS4yOTA5LDYuOTk0OSA1LjE4NjksOS42MDU5IEM1LjE4MzksOS42ODc5IDUuMTgyOSw5Ljc2OTkgNS4xODM5LDkuODUwOSBDNS4xNTI5LDEwLjU2MzkgNS4zODc5LDExLjI2MjkgNS44NDI5LDExLjgxMjkgQzYuMDA3OSwxMS45NDc5IDYuMDY1OSwxMi4xNzI5IDUuOTg1OSwxMi4zNzA5IEM1LjkzODksMTIuNTUyOSA1LjgyODksMTIuOTk4OSA1Ljc4MjksMTMuMTcyOSBDNS43NTI5LDEzLjM2MDkgNS41NzY5LDEzLjQ4ODkgNS4zODk5LDEzLjQ1NzkgQzUuMzUxOSwxMy40NTI5IDUuMzE1OSwxMy40NDA5IDUuMjgyOSwxMy40MjI5IEMzLjg4NTksMTIuODUzOSAzLjIzNTksMTEuMzI0OSAzLjIzNTksOS42MDY5IEMzLjIzNTksNi43Njc5IDUuNjI5OSwzLjM2MDkgMTAuMzc4OSwzLjM2MDkgQzE0LjE5NDksMy4zNjA5IDE2LjcwNzksNi4xMjQ5IDE2LjcwNzksOS4wODU5IEMxNi43MDc5LDEzLjAwNjkgMTQuNTI2OSwxNS45MzY5IDExLjMxMzksMTUuOTM2OSBDMTAuMzQxOSwxNS45NjE5IDkuNDIyOSwxNS40OTM5IDguODcxOSwxNC42OTE5IEM4Ljg3MTksMTQuNjkxOSA4LjI5MTksMTYuOTk0OSA4LjE2ODksMTcuNDM4OSBDNy45MzY5LDE4LjE5NjkgNy41OTg5LDE4LjkxNjkgNy4xNjI5LDE5LjU3OTkgQzEyLjQ1NTksMjEuMTQ3OSAxOC4wMTc5LDE4LjEyNjkgMTkuNTg1OSwxMi44MzM5IEMyMS4xNTI5LDcuNTQxOSAxOC4xMzM5LDEuOTc4OSAxMi44NDA5LDAuNDExOSBDMTEuOTE2OSwwLjEzNzkgMTAuOTU4OSwtMC4wMDAxIDkuOTk0OSwtMC4wMDAxIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTMuNDM4NCwxMy4wODI1IEMxMi42MDk0LDEzLjA4MjUgMTEuOTM3NCwxMi40MTA1IDExLjkzNzQsMTEuNTgwNSBDMTEuOTM3NCwxMC43NTE1IDEyLjYwOTQsMTAuMDc5NSAxMy40Mzg0LDEwLjA3OTUgQzE0LjI2NzQsMTAuMDc5NSAxNC45NDA0LDEwLjc1MTUgMTQuOTQwNCwxMS41ODA1IEMxNC45NzM0LDEyLjQwOTUgMTQuMzI4NCwxMy4xMDc1IDEzLjUwMDQsMTMuMTQxNSBDMTMuNDc0NCwxMy4xNDI1IDEzLjQ0OTQsMTMuMTQzNSAxMy40MjM0LDEzLjE0MjUgTDEzLjQzODQsMTMuMDgyNSBaIE0xMy43MDk0LDE1LjY0OTUgQzEyLjY0MzQsMTYuNDUyNSAxMS4zMzM0LDE2Ljg2MDUgMTAuMDAwNCwxNi44MDY1IEM4LjY2NzQsMTYuODYwNSA3LjM1NjQsMTYuNDUyNSA2LjI5MjQsMTUuNjQ5NSBDNi4xNDk0LDE1LjQ3NzUgNi4xNzQ0LDE1LjIyMTUgNi4zNDg0LDE1LjA3OTUgQzYuNDk3NCwxNC45NTY1IDYuNzEyNCwxNC45NTY1IDYuODYyNCwxNS4wNzk1IEM3Ljc2NTQsMTUuNzQxNSA4Ljg2NjQsMTYuMDc1NSA5Ljk4NTQsMTYuMDI0NSBDMTEuMTA1NCwxNi4wODY1IDEyLjIxMTQsMTUuNzYzNSAxMy4xMjM0LDE1LjEwOTUgQzEzLjI4OTQsMTQuOTQ3NSAxMy41NTQ0LDE0Ljk1MDUgMTMuNzE2NCwxNS4xMTY1IEMxMy44Nzc0LDE1LjI4MjUgMTMuODc1NCwxNS41NDg1IDEzLjcwOTQsMTUuNzA5NSBMMTMuNzA5NCwxNS42NDk1IFogTTQuOTg1NCwxMS41MjA1IEM0Ljk4NTQsMTAuNjkxNSA1LjY1NzQsMTAuMDE5NSA2LjQ4NjQsMTAuMDE5NSBDNy4zMTY0LDEwLjAxOTUgNy45ODg0LDEwLjY5MTUgNy45ODg0LDExLjUyMDUgQzcuOTg4NCwxMi4zNTA1IDcuMzE2NCwxMy4wMjE1IDYuNDg2NCwxMy4wMjE1IEM1LjY1NzQsMTMuMDIxNSA0Ljk4NTQsMTIuMzUwNSA0Ljk4NTQsMTEuNTIwNSBMNC45ODU0LDExLjUyMDUgWiBNMjAuMDAwNCwxMC4wMTk1IEMxOS45NTY0LDguODA5NSAxOC45Mzg0LDcuODY0NSAxNy43Mjk0LDcuOTA5NSBDMTcuMTkxNCw3LjkyODUgMTYuNjc5NCw4LjE0NTUgMTYuMjkxNCw4LjUxODUgQzE0LjU4MzQsNy4zNTY1IDEyLjU3NTQsNi43MTU1IDEwLjUxMDQsNi42NzE1IEwxMS40ODY0LDEuOTg2NSBMMTQuNzAwNCwyLjY2MjUgQzE0Ljc4ODQsMy40ODY1IDE1LjUyODQsNC4wODM1IDE2LjM1MzQsMy45OTQ1IEMxNy4xNzc0LDMuOTA2NSAxNy43NzQ0LDMuMTY1NSAxNy42ODU0LDIuMzQxNSBDMTcuNTk2NCwxLjUxNzUgMTYuODU2NCwwLjkyMDUgMTYuMDMyNCwxLjAwOTUgQzE1LjU1NzQsMS4wNjA1IDE1LjEzNDQsMS4zMzM1IDE0Ljg5NDQsMS43NDY1IEwxMS4yMTY0LDEuMDEwNSBDMTAuOTY1NCwwLjk1NjUgMTAuNzE2NCwxLjExNDUgMTAuNjYyNCwxLjM2NTUgQzEwLjY2MjQsMS4zNjc1IDEwLjY2MTQsMS4zNjk1IDEwLjY2MTQsMS4zNzE1IEw5LjU0OTQsNi41ODE1IEM3LjQ1OTQsNi42MTI1IDUuNDI0NCw3LjI1NDUgMy42OTQ0LDguNDI4NSBDMi44MTI0LDcuNTk4NSAxLjQyNTQsNy42NDA1IDAuNTk1NCw4LjUyMjUgQy0wLjIzMzYsOS40MDQ1IC0wLjE5MTYsMTAuNzkxNSAwLjY4OTQsMTEuNjIwNSBDMC44NjI0LDExLjc4MzUgMS4wNjE0LDExLjkxNzUgMS4yNzY0LDEyLjAxNjUgQzEuMjYwNCwxMi4yMzU1IDEuMjYwNCwxMi40NTc1IDEuMjc2NCwxMi42Nzc1IEMxLjI3NjQsMTYuMDQwNSA1LjE5NTQsMTguNzcyNSAxMC4wMzA0LDE4Ljc3MjUgQzE0Ljg2NTQsMTguNzcyNSAxOC43ODM0LDE2LjA0MDUgMTguNzgzNCwxMi42Nzc1IEMxOC44MDA0LDEyLjQ1NzUgMTguODAwNCwxMi4yMzU1IDE4Ljc4MzQsMTIuMDE2NSBDMTkuNTQwNCwxMS42NDA1IDIwLjAxMjQsMTAuODYzNSAyMC4wMDA0LDEwLjAxOTUgTDIwLjAwMDQsMTAuMDE5NSBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUsMTkgQzE1LDExLjI4IDguNzIsNSAxLDUgQzAuNDQ3LDUgMCw1LjQ0OCAwLDYgQzAsNi41NTIgMC40NDcsNyAxLDcgQzcuNjE3LDcgMTMsMTIuMzgzIDEzLDE5IEMxMywxOS41NTMgMTMuNDQ3LDIwIDE0LDIwIEMxNC41NTMsMjAgMTUsMTkuNTUzIDE1LDE5IE0yMCwxOSBDMjAsOC41MjMgMTEuNDc3LDAgMSwwIEMwLjQ0NywwIDAsMC40NDggMCwxIEMwLDEuNTUyIDAuNDQ3LDIgMSwyIEMxMC4zNzQsMiAxOCw5LjYyNiAxOCwxOSBDMTgsMTkuNTUzIDE4LjQ0NywyMCAxOSwyMCBDMTkuNTUzLDIwIDIwLDE5LjU1MyAyMCwxOSBNMTAsMTkgQzEwLDE0LjAzNyA1Ljk2MywxMCAxLDEwIEMwLjQ0NywxMCAwLDEwLjQ0OCAwLDExIEMwLDExLjU1MiAwLjQ0NywxMiAxLDEyIEM0Ljg1OSwxMiA4LDE1LjE0MSA4LDE5IEM4LDE5LjU1MyA4LjQ0NywyMCA5LDIwIEM5LjU1MywyMCAxMCwxOS41NTMgMTAsMTkgTTUsMTcuNSBDNSwxOC44ODEgMy44ODEsMjAgMi41LDIwIEMxLjExOSwyMCAwLDE4Ljg4MSAwLDE3LjUgQzAsMTYuMTE5IDEuMTE5LDE1IDIuNSwxNSBDMy44ODEsMTUgNSwxNi4xMTkgNSwxNy41Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTAuMTI2MDQzOSwxOSBDMTAuMDc1MDQ1MywxOSAxMC4wMjQwNDY4LDE4Ljk5ODA4MjMgOS45NzMwNDgyLDE4Ljk5NjE2NDUgQzkuOTQxMDQ5MSwxOC45OTgwODIzIDkuOTA3MDUwMDUsMTkgOS44NzQwNTA5OCwxOSBDOC42ODkwODQyMSwxOSA3LjkyODEwNTU1LDE4LjQ4NDEyNTMgNy4xOTMxMjYxNywxNy45ODU1MTAzIEM2LjY4NTE0MDQxLDE3LjY0MTI3NDIgNi4yMDYxNTM4NSwxNy4zMTcxNzQ1IDUuNjQxMTY5NjksMTcuMjI2MDgxNCBDNS4zNjYxNzc0LDE3LjE4MjkzMiA1LjA5MTE4NTExLDE3LjE2MDg3NzkgNC44MjcxOTI1MiwxNy4xNjA4Nzc5IEM0LjM0OTIwNTkyLDE3LjE2MDg3NzkgMy45NzIyMTY1LDE3LjIzMDg3NTggMy42OTcyMjQyMSwxNy4yODI2NTUgQzMuNTMwMjI4ODksMTcuMzE0Mjk3OSAzLjM4NjIzMjkzLDE3LjM0MjEwNTMgMy4yNzcyMzU5OSwxNy4zNDIxMDUzIEMzLjE2MjIzOTIxLDE3LjM0MjEwNTMgMy4wMzgyNDI2OSwxNy4zMTcxNzQ1IDIuOTg0MjQ0MiwxNy4xNDE3MDA0IEMyLjkzODI0NTQ5LDE2Ljk4NzMyMTUgMi45MDQyNDY0NSwxNi44Mzk2NTQ4IDIuODcxMjQ3MzcsMTYuNjk2NzgyNCBDMi43ODcyNDk3MywxNi4zMjc2MTU2IDIuNzI4MjUxMzgsMTYuMTAxMzIxMSAyLjU2NjI1NTkzLDE2LjA3NjM5MDQgQzAuNjg3MzA4NjIyLDE1Ljc5ODMxNjYgMC4xNDkzMjM3MDksMTUuNDE5NTYxIDAuMDI5MzI3MDc0NywxNS4xNDkxNTgzIEMwLjAxMjMyNzU1MTQsMTUuMTEwODAzMyAwLjAwMjMyNzgzMTg4LDE1LjA3MjQ0ODMgMC4wMDAzMjc4ODc5NjksMTUuMDM0MDkzMyBDLTAuMDA1NjcxOTQzNzcsMTQuOTMxNDkzNyAwLjA3MTMyNTg5NjgsMTQuODM5NDQxNyAwLjE3NzMyMjkyNCwxNC44MjMxNDA4IEMzLjA2NjI0MTksMTQuMzY2NzE2NCA0LjM2MTIwNTU5LDExLjUzNjExNzYgNC40MTUyMDQwNywxMS40MTYyNTgzIEM0LjQxNzIwNDAyLDExLjQxMjQyMjggNC40MTgyMDM5OSwxMS40MDk1NDYxIDQuNDIwMjAzOTMsMTEuNDA1NzEwNiBDNC41OTcxOTg5NywxMS4wNjI0MzM0IDQuNjMxMTk4MDIsMTAuNzY0MjIzMyA0LjUyMzIwMTA0LDEwLjUxOTcxMDIgQzQuMzI1MjA2NiwxMC4wNzA5NTY3IDMuNjc4MjI0NzQsOS44NzQzODczOSAzLjI1MTIzNjcyLDkuNzQ0OTM5MjcgQzMuMTQ2MjM5NjYsOS43MTIzMzc1MiAzLjA0NjI0MjQ3LDkuNjgyNjEyNCAyLjk2ODI0NDY1LDkuNjUyODg3MjggQzIuMTE0MjY4Niw5LjMyODc4NzU2IDIuMDQzMjcwNTksOC45OTcwMTY4MyAyLjA3NzI2OTY0LDguODI4MjU0ODUgQzIuMTM0MjY4MDQsOC41Mzk2MzM1IDIuNTM2MjU2NzcsOC4zMzgyNjk3NiAyLjg2MTI0NzY1LDguMzM4MjY5NzYgQzIuOTUwMjQ1MTYsOC4zMzgyNjk3NiAzLjAyOTI0Mjk0LDguMzUyNjUyODkgMy4wOTUyNDEwOSw4LjM4MjM3ODAxIEMzLjQ3OTIzMDMyLDguNTU0OTc1NSAzLjgyNTIyMDYyLDguNjQyMjMzMTEgNC4xMjQyMTIyMyw4LjY0MjIzMzExIEM0LjUzNzIwMDY1LDguNjQyMjMzMTEgNC43MTcxOTU2LDguNDc2MzQ3NzUgNC43MzkxOTQ5OSw4LjQ1NDI5MzYzIEM0LjcyOTE5NTI3LDguMjY3MzEzMDIgNC43MTYxOTU2Myw4LjA3MTcwMjU0IDQuNzAyMTk2MDIsNy44NjkzNzk5MyBDNC42MTYxOTg0NCw2LjU1OTU1Njc5IDQuNTEwMjAxNDEsNC45MzIzNDYwNSA0Ljk0MjE4OTI5LDQuMDAzMTk2MjUgQzYuMjM3MTUyOTgsMS4yMTk1ODIzNiA4Ljk4MzA3NTk3LDEuMDAyODc2NjIgOS43OTQwNTMyMiwxLjAwMjg3NjYyIEM5LjgxNDA1MjY2LDEuMDAyODc2NjIgMTAuMTQ5MDQzMywxIDEwLjE0OTA0MzMsMSBMMTAuMTk3MDQxOSwxIEMxMS4wMTAwMTkxLDEgMTMuNzYxOTQxOSwxLjIxNTc0Njg2IDE1LjA1NzkwNTYsNC4wMDEyNzg1IEMxNS40ODk4OTM1LDQuOTMxMzg3MTcgMTUuMzgyODk2NSw2LjU1OTU1Njc5IDE1LjI5Njg5ODksNy44Njg0MjEwNSBMMTUuMjkyODk5LDcuOTI0OTk0NjcgQzE1LjI4MTg5OTMsOC4xMDgxMzk3OCAxNS4yNjk4OTk3LDguMjg0NTcyNzcgMTUuMjU5ODk5OSw4LjQ1NDI5MzYzIEMxNS4yODA4OTkzLDguNDczNDcxMTMgMTUuNDQ2ODk0Nyw4LjYyNzg0OTk5IDE1LjgyMDg4NDIsOC42NDEyNzQyNCBMMTUuODIwODg0Miw4LjY0MTI3NDI0IEMxNi4xMDU4NzYyLDguNjMwNzI2NjEgMTYuNDMyODY3LDguNTQ0NDI3ODcgMTYuNzkxODU3LDguMzgyMzc4MDEgQzE2Ljg5Njg1NCw4LjMzNTM5MzE0IDE3LjAxMjg1MDgsOC4zMjU4MDQzOSAxNy4wOTI4NDg1LDguMzI1ODA0MzkgQzE3LjIxMzg0NTEsOC4zMjU4MDQzOSAxNy4zMzY4NDE3LDguMzQ4ODE3MzkgMTcuNDM4ODM4OCw4LjM4OTA5MDEzIEwxNy40NDU4Mzg2LDguMzkxOTY2NzYgQzE3LjczNTgzMDUsOC40ODk3NzIgMTcuOTI1ODI1Miw4LjY4NDQyMzYxIDE3LjkyOTgyNTEsOC44ODg2NjM5NyBDMTcuOTMzODI0OSw5LjA4MDQzODk1IDE3Ljc4MDgyOTIsOS4zNjkwNjAzIDE3LjAzMTg1MDIsOS42NTI4ODcyOCBDMTYuOTUzODUyNCw5LjY4MTY1MzUzIDE2Ljg1NDg1NTIsOS43MTIzMzc1MiAxNi43NDk4NTgxLDkuNzQ0OTM5MjcgQzE2LjMyMDg3MDIsOS44NzQzODczOSAxNS42NzQ4ODgzLDEwLjA3MDk1NjcgMTUuNDc2ODkzOCwxMC41MTg3NTEzIEMxNS4zNjc4OTY5LDEwLjc2MzI2NDQgMTUuNDAyODk1OSwxMS4wNjI0MzM0IDE1LjU3OTg5MSwxMS40MDU3MTA2IEMxNS41ODA4OTA5LDExLjQwODU4NzMgMTUuNTgyODkwOSwxMS40MTI0MjI4IDE1LjU4Mzg5MDgsMTEuNDE2MjU4MyBDMTUuNjM3ODg5MywxMS41MzYxMTc2IDE2LjkzMjg1MywxNC4zNjU3NTc1IDE5LjgyMjc3MiwxNC44MjMxNDA4IEMxOS45Mjg3NjksMTQuODM5NDQxNyAyMC4wMDQ3NjY5LDE0LjkzMDUzNDggMTkuOTk5NzY3LDE1LjAzNDA5MzMgQzE5Ljk5Njc2NzEsMTUuMDcyNDQ4MyAxOS45ODY3Njc0LDE1LjExMTc2MjIgMTkuOTY5NzY3OCwxNS4xNTAxMTcyIEMxOS44NTA3NzEyLDE1LjQxNzY0MzMgMTkuMzEzNzg2MiwxNS43OTYzOTg5IDE3LjQzMzgzOSwxNi4wNzU0MzE1IEMxNy4yNzk4NDMzLDE2LjA5ODQ0NDUgMTcuMjE5ODQ1LDE2LjI5MDIxOTUgMTcuMTI4ODQ3NSwxNi42OTE5ODgxIEMxNy4wOTU4NDg0LDE2LjgzODY5NTkgMTcuMDYxODQ5NCwxNi45ODI1MjcyIDE3LjAxNDg1MDcsMTcuMTM0MDI5NCBDMTYuOTc0ODUxOCwxNy4yNjQ0MzY0IDE2Ljg4OTg1NDIsMTcuMzI2NzYzMyAxNi43NDY4NTgyLDE3LjMyNjc2MzMgTDE2LjcyMjg1ODksMTcuMzI2NzYzMyBDMTYuNjIzODYxNywxNy4zMjY3NjMzIDE2LjQ4MTg2NTcsMTcuMzA4NTQ0NiAxNi4zMDE4NzA3LDE3LjI3NDk4NCBDMTUuOTgzODc5NiwxNy4yMTY0OTI2IDE1LjYyNjg4OTYsMTcuMTYwODc3OSAxNS4xNzI5MDI0LDE3LjE2MDg3NzkgQzE0LjkwNzkwOTgsMTcuMTYwODc3OSAxNC42MzM5MTc1LDE3LjE4MjkzMiAxNC4zNTc5MjUyLDE3LjIyNjA4MTQgQzEzLjc5Mzk0MSwxNy4zMTcxNzQ1IDEzLjMxNDk1NDUsMTcuNjQxMjc0MiAxMi44MDg5Njg3LDE3Ljk4NDU1MTUgQzEyLjA3MTk4OTMsMTguNDg0MTI1MyAxMS4zMTIwMTA3LDE5IDEwLjEyNjA0MzksMTkiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMCwxMy4yMyBDMCwxMy40ODIgMC4wOSwxMy42NzIgMC4yNywxMy44MDEgQzAuNDUsMTMuOTMgMC42NDIsMTMuOTc2IDAuODQ3LDEzLjkzOCBDMS4wMzksMTMuOSAxLjE3NCwxMy44MzEgMS4yNTIsMTMuNzMgQzEuMzI5LDEzLjYyOSAxLjM2OCwxMy40NjMgMS4zNjgsMTMuMjMgTDEuMzY4LDEwLjQ5NCBDMS4zNjgsMTAuMjk4IDEuMzAxLDEwLjEzMyAxLjE2OCw5Ljk5OCBDMS4wMzUsOS44NjMgMC44NzIsOS43OTQgMC42NzksOS43OTQgQzAuNDkzLDkuNzk0IDAuMzMzLDkuODYzIDAuMiw5Ljk5OCBDMC4wNjcsMTAuMTMzIDAsMTAuMjk4IDAsMTAuNDk0IEwwLDEzLjIzIFogTTIuMTQxLDE0LjQwMSBDMi4xNDEsMTQuNTg0IDIuMjA0LDE0LjcyIDIuMzMxLDE0LjgxMSBDMi40NTgsMTQuOTAzIDIuNjIxLDE0Ljk0OCAyLjgyLDE0Ljk0OCBDMy4wMjQsMTQuOTQ4IDMuMTksMTQuOTAzIDMuMzE4LDE0LjgxMSBDMy40NDUsMTQuNzIgMy41MDksMTQuNTg0IDMuNTA5LDE0LjQwMSBMMy41MDksOC4wMjEgQzMuNTA5LDcuODMyIDMuNDQyLDcuNjY5IDMuMzA5LDcuNTM0IEMzLjE3NSw3LjM5OSAzLjAxMiw3LjMzMiAyLjgyLDcuMzMyIEMyLjYzNCw3LjMzMiAyLjQ3NCw3LjM5OSAyLjM0MSw3LjUzNCBDMi4yMDcsNy42NjkgMi4xNDEsNy44MzIgMi4xNDEsOC4wMjEgTDIuMTQxLDE0LjQwMSBaIE00LjI3MSwxNC43MDMgQzQuMjcxLDE0Ljg4NSA0LjMzNywxNS4wMjIgNC40NjcsMTUuMTEzIEM0LjU5OCwxNS4yMDUgNC43NjUsMTUuMjUgNC45NywxNS4yNSBDNS4xNjgsMTUuMjUgNS4zMzEsMTUuMjA1IDUuNDU4LDE1LjExMyBDNS41ODUsMTUuMDIyIDUuNjQ5LDE0Ljg4NSA1LjY0OSwxNC43MDMgTDUuNjQ5LDguODc5IEM1LjY0OSw4LjY4NCA1LjU4Myw4LjUxOCA1LjQ0OSw4LjM3OSBDNS4zMTUsOC4yNDEgNS4xNTYsOC4xNzEgNC45Nyw4LjE3MSBDNC43NzcsOC4xNzEgNC42MTMsOC4yNDEgNC40NzcsOC4zNzkgQzQuMzQsOC41MTggNC4yNzEsOC42ODQgNC4yNzEsOC44NzkgTDQuMjcxLDE0LjcwMyBaIE02LjQxMiwxNC43MzEgQzYuNDEyLDE1LjA3NyA2LjY0MiwxNS4yNSA3LjEwMSwxNS4yNSBDNy41NiwxNS4yNSA3Ljc5LDE1LjA3NyA3Ljc5LDE0LjczMSBMNy43OSw1LjI5MyBDNy43OSw0Ljc2NCA3LjYyLDQuNDA0IDcuMzExLDQuMzY1IEM3LjEwMiw0LjMzNyA2LjkwOSw0LjMzOCA2LjcxLDQuNTA4IEM2LjUxMiw0LjY3OCA2LjQxMiw0Ljk4NSA2LjQxMiw1LjI5MyBMNi40MTIsMTQuNzMxIFogTTguNTksMTUuMDA0IEw4LjU5LDQuNzM2IEM4LjU5LDQuNDA5IDguNjg2LDQuMjE0IDguODc4LDQuMTUxIEM5LjI5NCw0LjA1IDkuNzA3LDQgMTAuMTE3LDQgQzExLjA2Niw0IDExLjk1LDQuMjI3IDEyLjc2OSw0LjY4IEMxMy41ODcsNS4xMzIgMTQuMjUsNS43NTEgMTQuNzU1LDYuNTM0IEMxNS4yNjEsNy4zMTcgMTUuNTU0LDguMTgxIDE1LjYzNSw5LjEyNSBDMTYuMDEzLDguOTYxIDE2LjQxNyw4Ljg3OSAxNi44NDUsOC44NzkgQzE3LjcxMyw4Ljg3OSAxOC40NTcsOS4xOTEgMTkuMDc0LDkuODE0IEMxOS42OTEsMTAuNDM3IDIwLDExLjE4NSAyMCwxMi4wNiBDMjAsMTIuOTQxIDE5LjY5MSwxMy42OTMgMTkuMDc0LDE0LjMxNiBDMTguNDU3LDE0LjkzOSAxNy43MTYsMTUuMjUxIDE2Ljg1NCwxNS4yNTEgTDguNzU4LDE1LjI0MSBDOC43MDIsMTUuMjIyIDguNjYsMTUuMTg3IDguNjMyLDE1LjEzNyBDOC42MDQsMTUuMDg2IDguNTksMTUuMDQyIDguNTksMTUuMDA0IEw4LjU5LDE1LjAwNCBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTAsMCBDNC40NzcsMCAwLDQuNDc3IDAsMTAgQzAsMTUuNTIyIDQuNDc3LDIwIDEwLDIwIEMxNS41MjIsMjAgMjAsMTUuNTIyIDIwLDEwIEMxOS45ODQsNC40ODQgMTUuNTE3LDAuMDE2IDEwLDAgTTE0LjYsMTQuNDU0IEMxNC40MzgsMTQuNzQgMTQuMDc1LDE0Ljg0MSAxMy43OSwxNC42NzkgQzEzLjc3NiwxNC42NzIgMTMuNzYzLDE0LjY2MyAxMy43NSwxNC42NTQgQzExLjQsMTMuMiA4LjQ1LDEyLjkwNCA0Ljk1LDEzLjcwNCBDNC42MTksMTMuNzg3IDQuMjgzLDEzLjU4NiA0LjIsMTMuMjU1IEM0LjExNywxMi45MjMgNC4zMTksMTIuNTg3IDQuNjUsMTIuNTA1IEM4LjQ1LDExLjY1NCAxMS43NSwxMi4wMDUgMTQuMzUsMTMuNjA0IEMxNC42NDcsMTMuNzQ5IDE0Ljc3MSwxNC4xMDcgMTQuNjI3LDE0LjQwNSBDMTQuNjE5LDE0LjQyMiAxNC42MDksMTQuNDM4IDE0LjYsMTQuNDU0IE0xNS44MDUsMTEuNyBDMTUuNTkxLDEyLjA1OCAxNS4xMjgsMTIuMTc0IDE0Ljc3MSwxMS45NiBDMTQuNzY2LDExLjk1NyAxNC43NiwxMS45NTMgMTQuNzU1LDExLjk1IEMxMS43MjUsMTAuMjQ3IDguMTM4LDkuODMzIDQuOCwxMC44IEM0LjM5OSwxMC45MjYgMy45NzMsMTAuNzAzIDMuODQ4LDEwLjMwMyBDMy43MjIsOS45MDIgMy45NDUsOS40NzYgNC4zNDUsOS4zNSBDOC4xMjYsOC4yNjkgMTIuMTgzLDguNzU1IDE1LjYsMTAuNyBDMTUuOTI5LDEwLjkwOSAxNi4wMjYsMTEuMzQ2IDE1LjgxNiwxMS42NzUgQzE1LjgxMiwxMS42ODQgMTUuODA2LDExLjY5MSAxNS44LDExLjcgTTE1LjksOC45IEMxMi43LDcgNy4zNSw2LjggNC4zLDcuNzUgQzMuODIzLDcuOTIgMy4yOTgsNy42NzEgMy4xMjgsNy4xOTQgQzIuOTU4LDYuNzE3IDMuMjA2LDYuMTkyIDMuNjgzLDYuMDIyIEMzLjcwNyw2LjAxNCAzLjczLDYuMDA2IDMuNzU0LDYgQzcuMzA1LDQuOTUgMTMuMTU0LDUuMTUgMTYuODU0LDcuMzUgQzE3LjMwNCw3LjYxNyAxNy40NTksOC4xOTMgMTcuMjA0LDguNjUgQzE2Ljg4Niw5LjAzMSAxNi4zNDIsOS4xMzYgMTUuOTA0LDguOSIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguNTQgMS4yTC43NzggOC40NThzLS44NC4zLS43NzQuODUyYy4wNjYuNTUzLjc1Mi44MDcuNzUyLjgwN2w0LjQ2OCAxLjU2NiAxMC43MjgtNy4wOTZzLjYyLS4zOTIuNTk3IDBjMCAwIC4xMTEuMDctLjIyLjM5MS0uMzMzLjMyNC04LjQyOSA3LjkwNC04LjQyOSA3LjkwNGwtLjU4MyA1LjE4MmMuMjQ3LjExMi40NzMtLjA2Ni40NzMtLjA2NmwyLjg4Ny0yLjc0MiA0LjUwMSAzLjU5M2MxLjIxNi41NTQgMS42Ni0uNTk4IDEuNjYtLjU5OEwyMCAxLjYzOGMwLTEuMTA2LTEuNDYtLjQzOC0xLjQ2LS40MzgiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUuMDgzLDE1Ljk2NSBDMTQuNTk1LDE2LjE3MyAxNC4wNzEsMTYuMjkgMTMuNTQsMTYuMzEgQzEyLjU4NSwxNi4zOCAxMS43NTQsMTUuNjY5IDExLjY4NCwxNC43MjQgQzExLjY3NCwxNC41OTYgMTEuNjc5LDE0LjQ2NyAxMS42OTgsMTQuMzQgTDExLjY5OCw4LjExNSBMMTUuNTQyLDguMTE1IEwxNS41NDIsNS4wODcgTDExLjcwNyw1LjA4NyBMMTEuNzA3LDAgTDguOTA0LDAgQzguODI3LDAuMDA4IDguNzY4LDAuMDcyIDguNzY2LDAuMTUgQzguNjY3LDIuNTE1IDcuMjAxLDQuNjEyIDUsNS41MzMgTDUsOC4xMTUgTDYuOTM3LDguMTE1IEw2LjkzNywxNC42NDggQzYuOTAzLDE3LjU2OSA5LjI2NiwxOS45NjYgMTIuMjE1LDE5Ljk5OSBDMTIuMzcyLDIwLjAwMSAxMi41MjksMTkuOTk2IDEyLjY4NywxOS45ODUgQzE0LjA5NCwxOS45NiAxNS42NTUsMTkuMzQ5IDE2LDE4LjgxNCBMMTUuMDgzLDE1Ljk2MyIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMS40MDYgMEwwIDMuNDMzdjE0LjAzaDUuMDAxVjIwaDIuODEybDIuNjU2LTIuNTM3aDQuMDYzTDIwIDEyLjIzOFYwSDEuNDA2em0xLjcxOSAxLjc5MWgxNXY5LjU1MkwxNSAxNC4zMjhoLTVsLTIuNjU2IDIuNTM3di0yLjUzN0gzLjEyNVYxLjc5MXptMTAgOC42NTFoMS44NzZWNS4yMjRoLTEuODc2djUuMjE4em0tNSAwSDEwVjUuMjI0SDguMTI1djUuMjE4eiIvPgo8L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNNi4yOSAxOC4yNTRjNy41NDcgMCAxMS42NzUtNi4yNTMgMTEuNjc1LTExLjY3NSAwLS4xNzgtLjAwNC0uMzU0LS4wMTItLjUzQTguMzM5IDguMzM5IDAgMCAwIDIwIDMuOTI0YTguMTY1IDguMTY1IDAgMCAxLTIuMzU2LjY0NiA0LjEyIDQuMTIgMCAwIDAgMS44MDQtMi4yNyA4LjE5OCA4LjE5OCAwIDAgMS0yLjYwNi45OTZBNC4xMDQgNC4xMDQgMCAwIDAgOS44NSA3LjAzOWExMS42NTIgMTEuNjUyIDAgMCAxLTguNDU4LTQuMjg3IDQuMTAxIDQuMTAxIDAgMCAwIDEuMjcgNS40NzcgNC4wNTggNC4wNTggMCAwIDEtMS44NTgtLjUxM2wtLjAwMS4wNTJhNC4xMDQgNC4xMDQgMCAwIDAgMy4yOTIgNC4wMjMgNC4xMDcgNC4xMDcgMCAwIDEtMS44NTMuMDcgNC4xMDcgNC4xMDcgMCAwIDAgMy44MzMgMi44NSA4LjIzMyA4LjIzMyAwIDAgMS01LjA5NiAxLjc1N0E4LjMzIDguMzMgMCAwIDEgMCAxNi40MTFhMTEuNjE0IDExLjYxNCAwIDAgMCA2LjI5IDEuODQzIi8+Cjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTQuNzg1IDExLjk1N2MtLjI0Ni0uMTM1LTEuNDU1LS43ODMtMS42ODMtLjg3My0uMjI2LS4wOTEtLjM5LS4xNC0uNTY4LjEwNC0uMTc3LjI0Mi0uNjc5Ljc4NC0uODMuOTQ0LS4xNTIuMTYyLS4zLjE3Ny0uNTQ2LjA0My0uMjQ2LS4xMzUtMS4wNDMtLjQyOC0xLjk2OS0xLjMxLS43MTktLjY4Ny0xLjE5Mi0xLjUyLTEuMzI5LTEuNzc0LS4xMzctLjI1NSAwLS4zODQuMTMtLjUwMy4xMTYtLjEwNy4yNjEtLjI4MS4zOTItLjQyMS4xMy0uMTQyLjE3Ni0uMjQ0LjI2Ni0uNDA2LjA5LS4xNjMuMDU0LS4zMS0uMDA1LS40MzctLjA1OC0uMTI1LS41MTItMS4zNjktLjcwMy0xLjg3NS0uMTktLjUwNS0uNC0uNDMtLjU0OC0uNDM2LS4xNDYtLjAwNS0uMzEyLS4wMzItLjQ3OS0uMDM3YS45MjUuOTI1IDAgMCAwLS42OC4yODVjLS4yNC4yNC0uOTA5LjgxOS0uOTU2IDIuMDQyLS4wNDYgMS4yMjQuODA3IDIuNDQuOTI2IDIuNjEuMTIuMTcgMS42MyAyLjgyMiA0LjE0IDMuOTEzIDIuNTEgMS4wOTEgMi41MjMuNzU4IDIuOTg0LjczNC40NjEtLjAyNCAxLjUwNS0uNTQ2IDEuNzM2LTEuMTIuMjMxLS41NzIuMjUtMS4wNy4xOTEtMS4xNzUtLjA1OS0uMTA3LS4yMjMtLjE3Ni0uNDY5LS4zMDltLTQuNjA0IDUuODk2YTguMTggOC4xOCAwIDAgMS00LjQ5Ny0xLjM0bC0zLjE0Ljk5NyAxLjAyLTMuMDExYTguMDI1IDguMDI1IDAgMCAxLTEuNTU2LTQuNzU1YzAtNC40NzQgMy42NjctOC4xMTIgOC4xNzMtOC4xMTIgNC41MDcgMCA4LjE3MyAzLjYzOCA4LjE3MyA4LjExMSAwIDQuNDcyLTMuNjY2IDguMTEtOC4xNzMgOC4xMW0wLTE3Ljg1MkM0Ljc2IDAgLjM2MyA0LjM2Mi4zNjMgOS43NDJjMCAxLjg0MS41MTUgMy41NjMgMS40MSA1LjAzTDAgMjBsNS40MzUtMS43MjdhOS44MzggOS44MzggMCAwIDAgNC43NDYgMS4yMTJjNS40MjMgMCA5LjgyLTQuMzYyIDkuODItOS43NDIgMC01LjM4MS00LjM5Ny05Ljc0NC05LjgyLTkuNzQ0Ii8+Cjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTkuOTkyNSw1LjE1NjggQzE5LjkwNTUsNy4xODU4IDE4LjU0NjUsOS45NjA4IDE1LjkxNjUsMTMuNDc5OCBDMTMuMTk3NSwxNy4xNTk4IDEwLjg5NDUsMTguOTk5OCA5LjAxMDUsMTguOTk5OCBDNy44NDU1LDE4Ljk5OTggNi44NTk1LDE3Ljg3ODggNi4wNTM1LDE1LjYzNTggQzUuNTEzNSwxMy41NzU4IDQuOTc0NSwxMS41MTY4IDQuNDM4NSw5LjQ2MTggQzMuODM4NSw3LjIxNTggMy4xOTU1LDYuMDkxOCAyLjUwOTUsNi4wOTI4IEMxLjkzODUsNi4zMzk4IDEuNDA5NSw2LjY3MTggMC45NDA1LDcuMDc2OCBMLTAuMDAwNSw1LjgxNTggQzAuOTg1NSw0LjkxNTggMS45NTc1LDQuMDExOCAyLjkxNTUsMy4xMDY4IEM0LjIyODUsMS45MjE4IDUuMjE0NSwxLjI5NzggNS44NzM1LDEuMjM0OCBDNy40MjY1LDEuMDc2OCA4LjM4MzUsMi4xODI4IDguNzQ0NSw0LjU1MzggQzkuMTI5NSw3LjExMTggOS4zOTc1LDguNzAxOCA5LjU0ODUsOS4zMjU4IEM5Ljk5ODUsMTEuNDQ1OCAxMC40OTE1LDEyLjUwNTggMTEuMDI3NSwxMi41MDM4IEMxMS40NDU1LDEyLjUwMzggMTIuMDczNSwxMS44MTg4IDEyLjkxMTUsMTAuNDQ4OCBDMTMuNTcyNSw5LjUwNzggMTQuMDMwNSw4LjQzOTggMTQuMjU1NSw3LjMxNDggQzE0LjM3NTUsNi4xMjg4IDEzLjkyNzUsNS41Mzk4IDEyLjkxMTUsNS41Mzk4IEMxMi40MDA1LDUuNTQ0OCAxMS44OTY1LDUuNjU2OCAxMS40MzE1LDUuODY1OCBDMTIuNDE5NSwyLjUyOTggMTQuMzAzNSwwLjkwODggMTcuMDgyNSwxLjAwMzggQzE5LjE0MTUsMS4wNjM4IDIwLjExMDUsMi40NDk4IDE5Ljk4OTUsNS4xNjI4Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNNi44NjEzLDAuMzg5NiBDNi4wNTYzLDAuNTkwNiA1LjI4OTMsMC44NTY2IDQuNTYzMywxLjE3ODYgQzQuMDU5MywxLjQwMTYgMy44NzAzLDEuOTc5NiA0LjE0ODMsMi40Mjk2IEw4LjUxNzMsOS40NzU2IEM5LjAwNzMsMTAuMjY2NiAxMC4zMDUzLDkuOTQyNiAxMC4zMDUzLDkuMDI5NiBMMTAuMzA1MywwLjg5MzYgQzEwLjMwNTMsMC4zNzM2IDkuODMwMywtMC4wMzg0IDkuMjc0MywwLjAwMjYgQzguNDcyMywwLjA2MTYgNy42NjYzLDAuMTg5NiA2Ljg2MTMsMC4zODk2IE0xNy45MjAzLDkuMjc0NiBDMTcuNDI2Myw4LjIxMzYgMTYuNjk2Myw3LjI5NzYgMTUuODA1Myw2LjU2NTYgQzE1LjM3MjMsNi4yMDk2IDE0LjcwMTMsNi4yOTE2IDE0LjM3ODMsNi43Mzc2IEwxMS43NzczLDEwLjMyNzYgQzExLjI3NzMsMTEuMDE3NiAxMS45NzYzLDExLjkxMjYgMTIuODM2MywxMS42ODM2IEwxNy4zMDUzLDEwLjQ5MDYgQzE3Ljg2MzMsMTAuMzQxNiAxOC4xNTAzLDkuNzY5NiAxNy45MjAzLDkuMjc0NiBNMTEuNzAwMywxNC40Mzg2IEwxNC4xNjUzLDE4LjExMTYgQzE0LjQ3MjMsMTguNTY5NiAxNS4xNDIzLDE4LjY2OTYgMTUuNTkwMywxOC4zMjY2IEMxNi41MjkzLDE3LjYwNDYgMTcuMjgyMywxNi43MDA2IDE3LjgwMDMsMTUuNjg4NiBDMTguMDQ5MywxNS4yMDI2IDE3Ljc4MTMsMTQuNjIxNiAxNy4yMzEzLDE0LjQ1NDYgTDEyLjgwOTMsMTMuMTE3NiBDMTEuOTU4MywxMi44NTk2IDExLjIyNjMsMTMuNzMyNiAxMS43MDAzLDE0LjQzODYgTTUuNjAxMywxOC43MzI2IEM2LjU5NDMsMTkuMzY3NiA3LjczMTMsMTkuNzk5NiA4LjkzMzMsMTkuOTg3NiBDOS41MDUzLDIwLjA3NjYgMTAuMDMxMywxOS42Nzc2IDEwLjA1MTMsMTkuMTM3NiBMMTAuMjE0MywxNC44MDk2IEMxMC4yNDUzLDEzLjk3NjYgOS4xNDIzLDEzLjU2MjYgOC41NDQzLDE0LjE4MTYgTDUuNDMyMywxNy4zOTk2IEM1LjA0NjMsMTcuNzk5NiA1LjEyNTMsMTguNDI2NiA1LjYwMTMsMTguNzMyNiBNMy43NTkzLDkuMzg2NiBMNy45MzkzLDExLjI4NTYgQzguNzQzMywxMS42NTA2IDguNjE5MywxMi43NTA2IDcuNzUxMywxMi45NTI2IEwzLjIzOTMsMTMuOTk5NiBDMi42NzYzLDE0LjEzMDYgMi4xMjEzLDEzLjc2OTYgMi4wNTQzLDEzLjIzMjYgQzEuOTEyMywxMi4wODQ2IDIuMDUyMywxMC45NTE2IDIuNDMxMyw5LjkwMjYgQzIuNjE1Myw5LjM5MjYgMy4yNDAzLDkuMTUxNiAzLjc1OTMsOS4zODY2Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOCwxMyBMOCw3IEwxMywxMCBMOCwxMyBaIE0xOS41ODIsNS4xODYgQzE5LjM1Myw0LjMyNiAxOC42NzUsMy42NDggMTcuODEzLDMuNDE4IEMxNi4yNTQsMyAxMCwzIDEwLDMgQzEwLDMgMy43NDYsMyAyLjE4NiwzLjQxOCBDMS4zMjYsMy42NDggMC42NDgsNC4zMjYgMC40MTgsNS4xODYgQzAsNi43NDYgMCwxMCAwLDEwIEMwLDEwIDAsMTMuMjU0IDAuNDE4LDE0LjgxMyBDMC42NDgsMTUuNjc1IDEuMzI2LDE2LjM1MyAyLjE4NiwxNi41ODIgQzMuNzQ2LDE3IDEwLDE3IDEwLDE3IEMxMCwxNyAxNi4yNTQsMTcgMTcuODEzLDE2LjU4MiBDMTguNjc1LDE2LjM1MyAxOS4zNTMsMTUuNjc1IDE5LjU4MiwxNC44MTMgQzIwLDEzLjI1NCAyMCwxMCAyMCwxMCBDMjAsMTAgMjAsNi43NDYgMTkuNTgyLDUuMTg2IEwxOS41ODIsNS4xODYgWiIvPgo8L3N2Zz4K\"","import { ReactComponent as LogoAngellist20 } from '../../icons/logo-angellist-20.svg'\nimport { ReactComponent as LogoCodepen20 } from '../../icons/logo-codepen-20.svg'\nimport { ReactComponent as LogoDribbble20 } from '../../icons/logo-dribbble-20.svg'\nimport { ReactComponent as LogoFacebook20 } from '../../icons/logo-facebook-20.svg'\nimport { ReactComponent as LogoGithub20 } from '../../icons/logo-github-20.svg'\nimport { ReactComponent as LogoInstagram20 } from '../../icons/logo-instagram-20.svg'\nimport { ReactComponent as LogoLinkedin20 } from '../../icons/logo-linkedin-20.svg'\nimport { ReactComponent as LogoMedium20 } from '../../icons/logo-medium-20.svg'\nimport { ReactComponent as LogoPinterest20 } from '../../icons/logo-pinterest-20.svg'\nimport { ReactComponent as LogoReddit20 } from '../../icons/logo-reddit-20.svg'\nimport { ReactComponent as LogoRss20 } from '../../icons/logo-rss-20.svg'\nimport { ReactComponent as LogoSnapchat20 } from '../../icons/logo-snapchat-20.svg'\nimport { ReactComponent as LogoSoundcloud20 } from '../../icons/logo-soundcloud-20.svg'\nimport { ReactComponent as LogoSpotify20 } from '../../icons/logo-spotify-20.svg'\nimport { ReactComponent as LogoTelegram20 } from '../../icons/logo-telegram-20.svg'\nimport { ReactComponent as LogoTumblr20 } from '../../icons/logo-tumblr-20.svg'\nimport { ReactComponent as LogoTwitch20 } from '../../icons/logo-twitch-20.svg'\nimport { ReactComponent as LogoTwitter20 } from '../../icons/logo-twitter-20.svg'\nimport { ReactComponent as LogoWhatsapp20 } from '../../icons/logo-whatsapp-20.svg'\nimport { ReactComponent as LogoVimeo20 } from '../../icons/logo-vimeo-20.svg'\nimport { ReactComponent as LogoYelp20 } from '../../icons/logo-yelp-20.svg'\nimport { ReactComponent as LogoYoutube20 } from '../../icons/logo-youtube-20.svg'\n\nexport const SocialLinksOptions = [\n { type: 'angellist', label: 'AngelList', icon: <LogoAngellist20 />, brandColor: 'black' },\n { type: 'codepen', label: 'CodePen', icon: <LogoCodepen20 />, brandColor: 'black' },\n { type: 'dribbble', label: 'Dribbble', icon: <LogoDribbble20 />, brandColor: '#ea4c89' },\n { type: 'facebook', label: 'Facebook', icon: <LogoFacebook20 />, brandColor: '#3b5998' },\n { type: 'github', label: 'GitHub', icon: <LogoGithub20 />, brandColor: 'black' },\n { type: 'instagram', label: 'Instagram', icon: <LogoInstagram20 />, brandColor: 'black' },\n { type: 'linkedin', label: 'LinkedIn', icon: <LogoLinkedin20 />, brandColor: '#0077b5' },\n { type: 'medium', label: 'Medium', icon: <LogoMedium20 />, brandColor: 'black' },\n { type: 'pinterest', label: 'Pinterest', icon: <LogoPinterest20 />, brandColor: '#bd081c' },\n { type: 'reddit', label: 'Reddit', icon: <LogoReddit20 />, brandColor: '#ff4500' },\n { type: 'rss', label: 'RSS', icon: <LogoRss20 />, brandColor: 'black' },\n { type: 'snapchat', label: 'Snapchat', icon: <LogoSnapchat20 />, brandColor: '#fffc00' },\n { type: 'soundcloud', label: 'SoundCloud', icon: <LogoSoundcloud20 />, brandColor: '#ff3300' },\n { type: 'spotify', label: 'Spotify', icon: <LogoSpotify20 />, brandColor: '#1db954' },\n { type: 'telegram', label: 'Telegram', icon: <LogoTelegram20 />, brandColor: '#0088cc' },\n { type: 'tumblr', label: 'Tumblr', icon: <LogoTumblr20 />, brandColor: '#35465c' },\n { type: 'twitch', label: 'Twitch', icon: <LogoTwitch20 />, brandColor: '#6441A4' },\n { type: 'twitter', label: 'Twitter', icon: <LogoTwitter20 />, brandColor: '#1da1f2' },\n { type: 'whatsapp', label: 'WhatsApp', icon: <LogoWhatsapp20 />, brandColor: '#25d366' },\n { type: 'vimeo', label: 'Vimeo', icon: <LogoVimeo20 />, brandColor: '#1ab7ea' },\n { type: 'yelp', label: 'Yelp', icon: <LogoYelp20 />, brandColor: '#af0606' },\n { type: 'youtube', label: 'YouTube', icon: <LogoYoutube20 />, brandColor: '#ff0000' },\n] as const\n","import styled from 'styled-components'\n\nimport { ResponsiveValue, Length } from '../../../../../prop-controllers/descriptors'\n\nimport GutterContainer from '../../../../shared/GutterContainer'\n\nconst PlaceholderLink = styled.div`\n width: 44px;\n height: 44px;\n border-radius: 50%;\n background-color: rgba(161, 168, 194, 0.4);\n`\n\nconst links = [{ id: '1' }, { id: '2' }, { id: '3' }]\n\ntype Props = { gutter?: ResponsiveValue<Length> }\n\nexport default function SocialLinksPlaceholder({ gutter }: Props): JSX.Element {\n return (\n <>\n {links.map((link, i) => (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n <PlaceholderLink />\n </GutterContainer>\n ))}\n </>\n )\n}\n","import { forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { Link } from '../../shared/Link'\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor } from '../../hooks'\nimport { SocialLinksOptions } from './options'\nimport GutterContainer from '../../shared/GutterContainer'\nimport SocialLinksPlaceholder from './components/SocialLinksPlaceholder'\nimport {\n ResponsiveValue,\n ElementIDValue,\n SocialLinksValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveSelectValue,\n ResponsiveColorValue,\n GapXValue,\n WidthValue,\n MarginValue,\n} from '../../../prop-controllers/descriptors'\n\ntype Props = {\n id?: ElementIDValue\n links?: SocialLinksValue\n shape?: ResponsiveIconRadioGroupValue<'naked' | 'circle' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n hoverStyle?: ResponsiveSelectValue<'none' | 'grow' | 'shrink' | 'fade'>\n fill?: ResponsiveColorValue\n backgroundColor?: ResponsiveColorValue\n alignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gutter?: GapXValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.div<{\n width: Props['width']\n margin: Props['margin']\n alignment: Props['alignment']\n}>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n ${cssWidth()}\n ${cssMargin()}\n ${p =>\n cssMediaRules(\n [p.alignment] as const,\n ([alignment = 'center']) => css`\n justify-content: ${alignment};\n `,\n )}\n`\n\nconst StyledLink = styled(Link)<{\n brandColor: string\n shape: Props['shape']\n size: Props['size']\n hoverStyle: Props['hoverStyle']\n fill: ResponsiveValue<Color> | null | undefined\n backgroundColor: ResponsiveValue<Color> | null | undefined\n}>`\n display: block;\n color: ${props => props.brandColor};\n transition: transform, opacity 0.18s;\n\n svg {\n display: block;\n }\n\n ${p =>\n cssMediaRules(\n [p.shape, p.size, p.hoverStyle, p.fill, p.backgroundColor] as const,\n ([shape = 'naked', size = 'medium', hoverStyle = 'none', fill, backgroundColor]) => css`\n padding: ${shape === 'naked' ? 0 : { small: 10, medium: 12, large: 14 }[size]}px;\n border-radius: ${{ circle: '50%', rounded: '8px', naked: 0, square: 0 }[shape]};\n background: ${shape === 'naked'\n ? 'transparent'\n : backgroundColor == null\n ? 'currentColor'\n : colorToString(backgroundColor)};\n\n :hover {\n ${{\n none: '',\n grow: css`\n transform: scale(1.1);\n `,\n shrink: css`\n transform: scale(0.9);\n `,\n fade: css`\n opacity: 0.65;\n `,\n }[hoverStyle]}\n }\n\n svg {\n fill: ${fill == null\n ? shape === 'naked' || backgroundColor != null\n ? 'currentColor'\n : 'white'\n : colorToString(fill)};\n width: ${{ small: 16, medium: 20, large: 24 }[size]}px;\n height: ${{ small: 16, medium: 20, large: 24 }[size]}px;\n }\n `,\n )}\n`\n\nexport default forwardRef(function SocialLinks(\n {\n id,\n links: { links, openInNewTab } = { links: [], openInNewTab: false },\n shape,\n size,\n hoverStyle,\n fill,\n backgroundColor,\n alignment,\n gutter,\n width,\n margin,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const fillData = useColor(fill)\n const backgroundColorData = useColor(backgroundColor)\n\n return (\n <Container ref={ref} id={id} alignment={alignment} width={width} margin={margin}>\n {links.length > 0 ? (\n links.map((link, i) => {\n const option = SocialLinksOptions.find(o => o.type === link.payload.type)\n\n if (!option) throw new Error(`Invalid link payload type ${link.payload.type}`)\n\n return (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n <StyledLink\n backgroundColor={backgroundColorData}\n brandColor={option.brandColor}\n fill={fillData}\n hoverStyle={hoverStyle}\n link={{ type: 'OPEN_URL', payload: { url: link.payload.url, openInNewTab } }}\n shape={shape}\n size={size}\n >\n {option == null ? null : option.icon}\n </StyledLink>\n </GutterContainer>\n )\n })\n ) : (\n <SocialLinksPlaceholder gutter={gutter} />\n )}\n </Container>\n )\n})\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * Constants.\n */\n\nvar IS_MAC = typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);\n\nvar MODIFIERS = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\n\nvar ALIASES = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta'\n};\n\nvar CODES = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n control: 17,\n alt: 18,\n pause: 19,\n capslock: 20,\n escape: 27,\n ' ': 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n arrowleft: 37,\n arrowup: 38,\n arrowright: 39,\n arrowdown: 40,\n insert: 45,\n delete: 46,\n meta: 91,\n numlock: 144,\n scrolllock: 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n '\\'': 222\n};\n\nfor (var f = 1; f < 20; f++) {\n CODES['f' + f] = 111 + f;\n}\n\n/**\n * Is hotkey?\n */\n\nfunction isHotkey(hotkey, options, event) {\n if (options && !('byKey' in options)) {\n event = options;\n options = null;\n }\n\n if (!Array.isArray(hotkey)) {\n hotkey = [hotkey];\n }\n\n var array = hotkey.map(function (string) {\n return parseHotkey(string, options);\n });\n var check = function check(e) {\n return array.some(function (object) {\n return compareHotkey(object, e);\n });\n };\n var ret = event == null ? check : check(event);\n return ret;\n}\n\nfunction isCodeHotkey(hotkey, event) {\n return isHotkey(hotkey, event);\n}\n\nfunction isKeyHotkey(hotkey, event) {\n return isHotkey(hotkey, { byKey: true }, event);\n}\n\n/**\n * Parse.\n */\n\nfunction parseHotkey(hotkey, options) {\n var byKey = options && options.byKey;\n var ret = {};\n\n // Special case to handle the `+` key since we use it as a separator.\n hotkey = hotkey.replace('++', '+add');\n var values = hotkey.split('+');\n var length = values.length;\n\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n\n for (var k in MODIFIERS) {\n ret[MODIFIERS[k]] = false;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var value = _step.value;\n\n var optional = value.endsWith('?');\n\n if (optional) {\n value = value.slice(0, -1);\n }\n\n var name = toKeyName(value);\n var modifier = MODIFIERS[name];\n\n if (length === 1 || !modifier) {\n if (byKey) {\n ret.key = name;\n } else {\n ret.which = toKeyCode(value);\n }\n }\n\n if (modifier) {\n ret[modifier] = optional ? null : true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return ret;\n}\n\n/**\n * Compare.\n */\n\nfunction compareHotkey(object, event) {\n for (var key in object) {\n var expected = object[key];\n var actual = void 0;\n\n if (expected == null) {\n continue;\n }\n\n if (key === 'key') {\n actual = event.key.toLowerCase();\n } else if (key === 'which') {\n actual = expected === 91 && event.which === 93 ? 91 : event.which;\n } else {\n actual = event[key];\n }\n\n if (actual == null && expected === false) {\n continue;\n }\n\n if (actual !== expected) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Utils.\n */\n\nfunction toKeyCode(name) {\n name = toKeyName(name);\n var code = CODES[name] || name.toUpperCase().charCodeAt(0);\n return code;\n}\n\nfunction toKeyName(name) {\n name = name.toLowerCase();\n name = ALIASES[name] || name;\n return name;\n}\n\n/**\n * Export.\n */\n\nexports.default = isHotkey;\nexports.isHotkey = isHotkey;\nexports.isCodeHotkey = isCodeHotkey;\nexports.isKeyHotkey = isKeyHotkey;\nexports.parseHotkey = parseHotkey;\nexports.compareHotkey = compareHotkey;\nexports.toKeyCode = toKeyCode;\nexports.toKeyName = toKeyName;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","import isBrowser from 'is-in-browser';\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n/**\n * Browser matching rules.\n *\n * @type {Array}\n */\n\nvar BROWSER_RULES = [['edge', /Edge\\/([0-9\\._]+)/], ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/], ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/], ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/], ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)$/], ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+)\\).*Gecko$/], ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/], ['ie', /MSIE\\s(7\\.0)/], ['android', /Android\\s([0-9\\.]+)/], ['safari', /Version\\/([0-9\\._]+).*Safari/]];\n\nvar browser = void 0;\n\nif (isBrowser) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = BROWSER_RULES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref = _step.value;\n\n var _ref2 = slicedToArray(_ref, 2);\n\n var name = _ref2[0];\n var regexp = _ref2[1];\n\n if (regexp.test(window.navigator.userAgent)) {\n browser = name;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\n/**\n * Operating system matching rules.\n *\n * @type {Array}\n */\n\nvar OS_RULES = [['ios', /os ([\\.\\_\\d]+) like mac os/i], // must be before the macos rule\n['macos', /mac os x/i], ['android', /android/i], ['firefoxos', /mozilla\\/[a-z\\.\\_\\d]+ \\((?:mobile)|(?:tablet)/i], ['windows', /windows\\s*(?:nt)?\\s*([\\.\\_\\d]+)/i]];\n\nvar os = void 0;\n\nif (isBrowser) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = OS_RULES[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref3 = _step2.value;\n\n var _ref4 = slicedToArray(_ref3, 2);\n\n var _name = _ref4[0];\n var _regexp = _ref4[1];\n\n if (_regexp.test(window.navigator.userAgent)) {\n os = _name;\n break;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\n/**\n * Feature matching rules.\n *\n * @type {Array}\n */\n\nvar FEATURE_RULES = [['inputeventslevel1', function (window) {\n var event = window.InputEvent ? new window.InputEvent('input') : {};\n var support = 'inputType' in event;\n return support;\n}], ['inputeventslevel2', function (window) {\n var element = window.document.createElement('div');\n element.contentEditable = true;\n var support = 'onbeforeinput' in element;\n return support;\n}]];\n\nvar features = [];\n\nif (isBrowser) {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = FEATURE_RULES[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _ref5 = _step3.value;\n\n var _ref6 = slicedToArray(_ref5, 2);\n\n var _name2 = _ref6[0];\n var test = _ref6[1];\n\n if (test(window)) {\n features.push(_name2);\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n}\n\n/**\n * Array of regular expression matchers and their API version\n *\n * @type {Array}\n */\n\nvar ANDROID_API_VERSIONS = [[/^9([.]0|)/, 28], [/^8[.]1/, 27], [/^8([.]0|)/, 26], [/^7[.]1/, 25], [/^7([.]0|)/, 24], [/^6([.]0|)/, 23], [/^5[.]1/, 22], [/^5([.]0|)/, 21], [/^4[.]4/, 20]];\n\n/**\n * get the Android API version from the userAgent\n *\n * @return {number} version\n */\n\nfunction getAndroidApiVersion() {\n if (os !== 'android') return null;\n var userAgent = window.navigator.userAgent;\n\n var matchData = userAgent.match(/Android\\s([0-9\\.]+)/);\n if (matchData == null) return null;\n var versionString = matchData[1];\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = ANDROID_API_VERSIONS[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var _ref7 = _step4.value;\n\n var _ref8 = slicedToArray(_ref7, 2);\n\n var regex = _ref8[0];\n var version = _ref8[1];\n\n if (versionString.match(regex)) return version;\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n return null;\n}\n\n/**\n * Export.\n *\n * @type {Boolean}\n */\n\nvar IS_CHROME = browser === 'chrome';\nvar IS_OPERA = browser === 'opera';\nvar IS_FIREFOX = browser === 'firefox';\nvar IS_SAFARI = browser === 'safari';\nvar IS_IE = browser === 'ie';\nvar IS_EDGE = browser === 'edge';\n\nvar IS_ANDROID = os === 'android';\nvar IS_IOS = os === 'ios';\nvar IS_MAC = os === 'macos';\nvar IS_WINDOWS = os === 'windows';\n\nvar ANDROID_API_VERSION = getAndroidApiVersion();\n\nvar HAS_INPUT_EVENTS_LEVEL_1 = features.includes('inputeventslevel1');\nvar HAS_INPUT_EVENTS_LEVEL_2 = features.includes('inputeventslevel2') || IS_ANDROID && (ANDROID_API_VERSION === 28 || ANDROID_API_VERSION === null);\n\nexport { IS_CHROME, IS_OPERA, IS_FIREFOX, IS_SAFARI, IS_IE, IS_EDGE, IS_ANDROID, IS_IOS, IS_MAC, IS_WINDOWS, ANDROID_API_VERSION, HAS_INPUT_EVENTS_LEVEL_1, HAS_INPUT_EVENTS_LEVEL_2 };\n//# sourceMappingURL=slate-dev-environment.es.js.map\n","import { isKeyHotkey } from 'is-hotkey';\nimport { IS_IOS, IS_MAC } from 'slate-dev-environment';\n\n/**\n * Hotkey mappings for each platform.\n *\n * @type {Object}\n */\n\nvar HOTKEYS = {\n bold: 'mod+b',\n compose: ['down', 'left', 'right', 'up', 'backspace', 'enter'],\n moveBackward: 'left',\n moveForward: 'right',\n moveWordBackward: 'ctrl+left',\n moveWordForward: 'ctrl+right',\n deleteBackward: 'shift?+backspace',\n deleteForward: 'shift?+delete',\n extendBackward: 'shift+left',\n extendForward: 'shift+right',\n italic: 'mod+i',\n splitBlock: 'shift?+enter',\n undo: 'mod+z'\n};\n\nvar APPLE_HOTKEYS = {\n moveLineBackward: 'opt+up',\n moveLineForward: 'opt+down',\n moveWordBackward: 'opt+left',\n moveWordForward: 'opt+right',\n deleteBackward: ['ctrl+backspace', 'ctrl+h'],\n deleteForward: ['ctrl+delete', 'ctrl+d'],\n deleteLineBackward: 'cmd+shift?+backspace',\n deleteLineForward: ['cmd+shift?+delete', 'ctrl+k'],\n deleteWordBackward: 'opt+shift?+backspace',\n deleteWordForward: 'opt+shift?+delete',\n extendLineBackward: 'opt+shift+up',\n extendLineForward: 'opt+shift+down',\n redo: 'cmd+shift+z',\n transposeCharacter: 'ctrl+t'\n};\n\nvar WINDOWS_HOTKEYS = {\n deleteWordBackward: 'ctrl+shift?+backspace',\n deleteWordForward: 'ctrl+shift?+delete',\n redo: 'ctrl+y'\n\n /**\n * Hotkeys.\n *\n * @type {Object}\n */\n\n};var Hotkeys = {};\n\nvar IS_APPLE = IS_IOS || IS_MAC;\nvar IS_WINDOWS = !IS_APPLE;\nvar KEYS = [].concat(Object.keys(HOTKEYS)).concat(Object.keys(APPLE_HOTKEYS)).concat(Object.keys(WINDOWS_HOTKEYS));\n\nKEYS.forEach(function (key) {\n var method = 'is' + key[0].toUpperCase() + key.slice(1);\n if (Hotkeys[method]) return;\n\n var generic = HOTKEYS[key];\n var apple = APPLE_HOTKEYS[key];\n var windows = WINDOWS_HOTKEYS[key];\n\n var isGeneric = generic && isKeyHotkey(generic);\n var isApple = apple && isKeyHotkey(apple);\n var isWindows = windows && isKeyHotkey(windows);\n\n Hotkeys[method] = function (event) {\n if (isGeneric && isGeneric(event)) return true;\n if (IS_APPLE && isApple && isApple(event)) return true;\n if (IS_WINDOWS && isWindows && isWindows(event)) return true;\n return false;\n };\n});\n\nexport default Hotkeys;\n//# sourceMappingURL=slate-hotkeys.es.js.map\n","import { Block, Text } from 'slate';\nimport React from 'react';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar defineProperty = _defineProperty;\n\nfunction _defineProperty$1(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 _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar lib = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * Constants.\n */\n\nvar IS_MAC = typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);\n\nvar MODIFIERS = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\n\nvar ALIASES = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta'\n};\n\nvar CODES = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n control: 17,\n alt: 18,\n pause: 19,\n capslock: 20,\n escape: 27,\n ' ': 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n arrowleft: 37,\n arrowup: 38,\n arrowright: 39,\n arrowdown: 40,\n insert: 45,\n delete: 46,\n meta: 91,\n numlock: 144,\n scrolllock: 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n '\\'': 222\n};\n\nfor (var f = 1; f < 20; f++) {\n CODES['f' + f] = 111 + f;\n}\n\n/**\n * Is hotkey?\n */\n\nfunction isHotkey(hotkey, options, event) {\n if (options && !('byKey' in options)) {\n event = options;\n options = null;\n }\n\n if (!Array.isArray(hotkey)) {\n hotkey = [hotkey];\n }\n\n var array = hotkey.map(function (string) {\n return parseHotkey(string, options);\n });\n var check = function check(e) {\n return array.some(function (object) {\n return compareHotkey(object, e);\n });\n };\n var ret = event == null ? check : check(event);\n return ret;\n}\n\nfunction isCodeHotkey(hotkey, event) {\n return isHotkey(hotkey, event);\n}\n\nfunction isKeyHotkey(hotkey, event) {\n return isHotkey(hotkey, { byKey: true }, event);\n}\n\n/**\n * Parse.\n */\n\nfunction parseHotkey(hotkey, options) {\n var byKey = options && options.byKey;\n var ret = {};\n\n // Special case to handle the `+` key since we use it as a separator.\n hotkey = hotkey.replace('++', '+add');\n var values = hotkey.split('+');\n var length = values.length;\n\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n\n for (var k in MODIFIERS) {\n ret[MODIFIERS[k]] = false;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var value = _step.value;\n\n var optional = value.endsWith('?');\n\n if (optional) {\n value = value.slice(0, -1);\n }\n\n var name = toKeyName(value);\n var modifier = MODIFIERS[name];\n\n if (length === 1 || !modifier) {\n if (byKey) {\n ret.key = name;\n } else {\n ret.which = toKeyCode(value);\n }\n }\n\n if (modifier) {\n ret[modifier] = optional ? null : true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return ret;\n}\n\n/**\n * Compare.\n */\n\nfunction compareHotkey(object, event) {\n for (var key in object) {\n var expected = object[key];\n var actual = void 0;\n\n if (expected == null) {\n continue;\n }\n\n if (key === 'key') {\n actual = event.key.toLowerCase();\n } else if (key === 'which') {\n actual = expected === 91 && event.which === 93 ? 91 : event.which;\n } else {\n actual = event[key];\n }\n\n if (actual == null && expected === false) {\n continue;\n }\n\n if (actual !== expected) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Utils.\n */\n\nfunction toKeyCode(name) {\n name = toKeyName(name);\n var code = CODES[name] || name.toUpperCase().charCodeAt(0);\n return code;\n}\n\nfunction toKeyName(name) {\n name = name.toLowerCase();\n name = ALIASES[name] || name;\n return name;\n}\n\n/**\n * Export.\n */\n\nexports.default = isHotkey;\nexports.isHotkey = isHotkey;\nexports.isCodeHotkey = isCodeHotkey;\nexports.isKeyHotkey = isKeyHotkey;\nexports.parseHotkey = parseHotkey;\nexports.compareHotkey = compareHotkey;\nexports.toKeyCode = toKeyCode;\nexports.toKeyName = toKeyName;\n});\n\nvar isHotkey = unwrapExports(lib);\nvar lib_1 = lib.isHotkey;\nvar lib_2 = lib.isCodeHotkey;\nvar lib_3 = lib.isKeyHotkey;\nvar lib_4 = lib.parseHotkey;\nvar lib_5 = lib.compareHotkey;\nvar lib_6 = lib.toKeyCode;\nvar lib_7 = lib.toKeyName;\n\nvar Keymap = function Keymap(shortcuts, options) {\n var config = _objectSpread({\n if: function _if() {\n return true;\n }\n }, options);\n\n var functions = Object.keys(shortcuts).map(function (key) {\n var isKeyPressed = isHotkey(key);\n var command = shortcuts[key];\n\n var check = function check(event, editor) {\n return isKeyPressed(event) && config.if(editor);\n };\n\n var handler = typeof command == \"string\" ? function (event, editor) {\n event.preventDefault();\n editor.command(command);\n } : command;\n return {\n check: check,\n handler: handler\n };\n });\n return {\n onKeyDown: function onKeyDown(event, editor, next) {\n var shortcut = functions.find(function (shortcut) {\n return shortcut.check(event, editor);\n });\n\n if (shortcut) {\n return shortcut.handler(event, editor, next);\n } else {\n return next();\n }\n }\n };\n};\n\nvar isList = function isList(blocks, block) {\n return block.type == blocks.unordered_list || block.type == blocks.ordered_list;\n};\n\nvar wrapList = (function (_ref, editor) {\n var blocks = _ref.blocks;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var type = options.type || blocks.unordered_list;\n var rootBlocks = editor.value.document.getRootBlocksAtRange(editor.value.selection);\n editor.withoutNormalizing(function () {\n rootBlocks.forEach(function (block) {\n if (isList(blocks, block)) return;\n editor.wrapBlockByKey(block.key, type);\n editor.wrapBlockByKey(block.key, blocks.list_item);\n editor.setNodeByKey(block.key, blocks.list_item_child);\n });\n });\n});\n\nvar unwrapListByKey = (function (_ref, editor, key) {\n var blocks = _ref.blocks;\n var listItem = editor.value.document.getNode(key);\n editor.withoutNormalizing(function () {\n editor.unwrapNodeByKey(listItem.key);\n var parent = editor.value.document.getParent(listItem.key);\n var itemIndex = parent.nodes.findIndex(function (node) {\n return node.key === listItem.key;\n });\n listItem.nodes.forEach(function (itemChild, index) {\n editor.moveNodeByKey(itemChild.key, parent.key, index + itemIndex);\n\n if (itemChild.type == blocks.list_item_child) {\n editor.setNodeByKey(itemChild.key, {\n type: blocks[\"default\"]\n });\n }\n });\n editor.removeNodeByKey(listItem.key);\n });\n});\n\nvar unwrapList = (function (_ref, editor) {\n var blocks = _ref.blocks;\n var listItemChildren = editor.value.document.getNodesAtRange(editor.value.selection).filter(function (node) {\n return node.type == blocks.list_item_child;\n });\n var furthestListItems = listItemChildren.map(function (listItemChild) {\n return editor.value.document.getFurthest(listItemChild.key, function (node) {\n return node.type == blocks.list_item;\n });\n }).filter(function (listItemChild, index, array) {\n return array.indexOf(listItemChild) == index;\n });\n furthestListItems.forEach(function (listItem) {\n unwrapListByKey({\n blocks: blocks\n }, editor, listItem.key);\n });\n});\n\nvar toggleList = (function (_ref, editor) {\n var blocks = _ref.blocks;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _editor$value = editor.value,\n document = _editor$value.document,\n startBlock = _editor$value.startBlock;\n var type = options.type || blocks.unordered_list;\n var parent = document.getParent(startBlock.key);\n var isList = parent.type == blocks.list_item;\n if (!isList) return editor.wrapList({\n type: type\n });\n var list = document.getParent(parent.key);\n var sameType = list.type == type;\n\n if (sameType) {\n editor.unwrapList();\n } else {\n editor.setNodeByKey(list.key, type);\n }\n});\n\nvar decreaseListItemDepth = (function (_ref, editor) {\n var blocks = _ref.blocks;\n var _editor$value = editor.value,\n document = _editor$value.document,\n startBlock = _editor$value.startBlock;\n var listItem = document.getParent(startBlock.key);\n if (listItem.type != blocks.list_item) return;\n var list = document.getParent(listItem.key);\n var parentListItem = document.getParent(list.key);\n if (parentListItem.type != blocks.list_item) return;\n var parentList = document.getParent(parentListItem.key);\n var index = parentList.nodes.indexOf(parentListItem);\n var otherItems = list.nodes.skipUntil(function (item) {\n return item === listItem;\n }).rest();\n\n if (!otherItems.isEmpty()) {\n var newList = Block.create({\n object: \"block\",\n type: list.type\n });\n editor.withoutNormalizing(function () {\n editor.insertNodeByKey(listItem.key, listItem.nodes.size, newList);\n editor.moveNodeByKey(listItem.key, parentList.key, index + 1);\n otherItems.forEach(function (item, index) {\n return editor.moveNodeByKey(item.key, newList.key, newList.nodes.size + index);\n });\n });\n } else {\n editor.moveNodeByKey(listItem.key, parentList.key, index + 1);\n }\n});\n\nvar increaseListItemDepth = (function (_ref, editor) {\n var blocks = _ref.blocks;\n var _editor$value = editor.value,\n document = _editor$value.document,\n startBlock = _editor$value.startBlock;\n var listItem = document.getParent(startBlock.key);\n var previousListItem = document.getPreviousSibling(listItem.key);\n var list = document.getParent(listItem.key);\n if (!listItem) return;\n if (!previousListItem) return; // Because of our schema constraints, we know that the second item must be a\n // list if it exists.\n\n var existingList = previousListItem.nodes.get(1);\n\n if (existingList) {\n editor.withoutNormalizing(function () {\n editor.moveNodeByKey(listItem.key, existingList.key, existingList.nodes.size);\n });\n } else {\n var newList = Block.create({\n object: \"block\",\n type: list.type\n });\n editor.withoutNormalizing(function () {\n editor.insertNodeByKey(previousListItem.key, previousListItem.nodes.size, newList);\n editor.moveNodeByKey(listItem.key, newList.key, 0);\n });\n }\n});\n\nvar wrapWithOptions = function wrapWithOptions(fn, options) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return fn.apply(void 0, [options].concat(args));\n };\n};\n\nvar createCommands = (function (options) {\n return {\n wrapList: wrapWithOptions(wrapList, options),\n unwrapList: wrapWithOptions(unwrapList, options),\n toggleList: wrapWithOptions(toggleList, options),\n unwrapListByKey: wrapWithOptions(unwrapListByKey, options),\n decreaseListItemDepth: wrapWithOptions(decreaseListItemDepth, options),\n increaseListItemDepth: wrapWithOptions(increaseListItemDepth, options)\n };\n});\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar arrayWithHoles = _arrayWithHoles;\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nvar iterableToArrayLimit = _iterableToArrayLimit;\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nvar arrayLikeToArray = _arrayLikeToArray;\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(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nvar unsupportedIterableToArray = _unsupportedIterableToArray;\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 nonIterableRest = _nonIterableRest;\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nvar slicedToArray = _slicedToArray;\n\nvar sameType = function sameType(node, other) {\n return node.type == other.type;\n};\n\nvar createNormalizeNode = (function (_ref) {\n var blocks = _ref.blocks;\n\n var isList = function isList(block) {\n return block && (block.type == blocks.unordered_list || block.type == blocks.ordered_list);\n };\n\n return function (node, editor, next) {\n if (node.object !== \"document\" && node.object !== \"block\") return next();\n var mergable = node.nodes.map(function (child, index) {\n if (!isList(child)) {\n return null;\n }\n\n var adjacent = node.nodes.get(index + 1);\n\n if (!adjacent || !isList(adjacent) || !sameType(child, adjacent)) {\n return null;\n }\n\n return [child, adjacent];\n }).filter(function (node) {\n return node;\n });\n if (mergable.isEmpty()) return next();\n return function (editor) {\n mergable.reverse().forEach(function (_ref2) {\n var _ref3 = slicedToArray(_ref2, 2),\n list = _ref3[0],\n adjacent = _ref3[1];\n\n var updatedAdjacent = editor.value.document.getDescendant(adjacent.key);\n updatedAdjacent.nodes.forEach(function (child, index) {\n editor.withoutNormalizing(function () {\n editor.moveNodeByKey(child.key, list.key, list.nodes.size + index);\n });\n });\n editor.withoutNormalizing(function () {\n editor.removeNodeByKey(adjacent.key);\n });\n });\n };\n };\n});\n\nfunction createCommonjsModule$1(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar _extends_1 = createCommonjsModule$1(function (module) {\nfunction _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\n});\n\nvar createRenderBlock = (function (_ref) {\n var blocks = _ref.blocks,\n classNames = _ref.classNames;\n return function (props, editor, next) {\n var node = props.node;\n\n switch (node.type) {\n case blocks.unordered_list:\n return /*#__PURE__*/React.createElement(\"ul\", _extends_1({\n className: classNames.unordered_list\n }, props.attributes, {\n style: {\n listStylePosition: \"inside\"\n }\n }), props.children);\n\n case blocks.ordered_list:\n {\n return /*#__PURE__*/React.createElement(\"ol\", _extends_1({\n className: classNames.ordered_list\n }, props.attributes, {\n style: {\n listStylePosition: \"inside\"\n }\n }), props.children);\n }\n\n case blocks.list_item:\n {\n return /*#__PURE__*/React.createElement(\"li\", _extends_1({\n className: classNames.list_item\n }, props.attributes), props.children);\n }\n\n case blocks.list_item_child:\n {\n return /*#__PURE__*/React.createElement(\"span\", _extends_1({\n className: classNames.list_item_child\n }, props.attributes), props.children);\n }\n\n default:\n return next();\n }\n };\n});\n\nvar createSchema = (function (_ref) {\n var _blocks;\n\n var blocks = _ref.blocks;\n return {\n blocks: (_blocks = {}, defineProperty(_blocks, blocks.unordered_list, {\n nodes: [{\n match: {\n type: blocks.list_item\n }\n }]\n }), defineProperty(_blocks, blocks.ordered_list, {\n nodes: [{\n match: {\n type: blocks.list_item\n }\n }]\n }), defineProperty(_blocks, blocks.list_item, {\n parent: [{\n type: blocks.unordered_list\n }, {\n type: blocks.ordered_list\n }],\n nodes: [{\n match: {\n type: blocks.list_item_child\n },\n min: 1,\n max: 1\n }, {\n match: [{\n type: blocks.unordered_list\n }, {\n type: blocks.ordered_list\n }],\n min: 0,\n max: 1\n }],\n normalize: function normalize(editor, error) {\n switch (error.code) {\n case \"child_min_invalid\":\n editor.insertNodeByKey(error.node.key, 0, Block.create({\n type: blocks.list_item_child,\n nodes: [Text.create()]\n }));\n return;\n\n case \"child_type_invalid\":\n editor.wrapBlockByKey(error.child.key, {\n type: blocks.list_item_child\n });\n return;\n\n case \"parent_type_invalid\":\n editor.wrapBlockByKey(error.node.key, blocks.unordered_list);\n return;\n\n default:\n return;\n }\n }\n }), _blocks)\n };\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar index = (function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var config = _objectSpread$1({}, options);\n\n var blocks = _objectSpread$1({\n unordered_list: \"unordered-list\",\n ordered_list: \"ordered-list\",\n list_item: \"list-item\",\n list_item_child: \"list-item-child\",\n \"default\": \"paragraph\"\n }, config.blocks);\n\n var classNames = _objectSpread$1({\n unordered_list: \"unordered-list\",\n ordered_list: \"ordered-list\",\n list_item: \"list-item\",\n list_item_child: \"list-item-child\"\n }, config.classNames);\n\n var commands = createCommands({\n blocks: blocks\n });\n\n var isListItem = function isListItem(block) {\n return block && block.type == blocks.list_item;\n };\n\n var getListItem = function getListItem(editor, block) {\n var possibleListItem = editor.value.document.getParent(block.key);\n return isListItem(possibleListItem) ? possibleListItem : null;\n };\n\n var isList = function isList(block) {\n return block && (block.type == blocks.unordered_list || block.type == blocks.ordered_list);\n };\n\n var getList = function getList(editor, block) {\n var possibleList = editor.value.document.getParent(block.key);\n return isList(possibleList) ? possibleList : null;\n };\n\n var onBackspace = function onBackspace(event, editor, next) {\n var selection = editor.value.selection;\n if (selection.isExpanded) return next();\n if (selection.start.offset !== 0) return next();\n var listItem = getListItem(editor, editor.value.startBlock);\n var list = getList(editor, listItem);\n var parentListItem = getListItem(editor, list);\n\n if (parentListItem) {\n editor.decreaseListItemDepth();\n return;\n }\n\n editor.unwrapList();\n };\n\n var onEnter = function onEnter(event, editor, next) {\n var _editor$value = editor.value,\n selection = _editor$value.selection,\n startBlock = _editor$value.startBlock;\n event.preventDefault();\n if (selection.isExpanded) editor[\"delete\"]();\n\n if (selection.start.offset === 0 && startBlock.getText() === \"\") {\n var _listItem = getListItem(editor, editor.value.startBlock);\n\n var list = getList(editor, _listItem);\n var parentListItem = getListItem(editor, list);\n\n if (parentListItem) {\n editor.decreaseListItemDepth();\n return;\n }\n\n editor.unwrapList();\n return;\n }\n\n var listItem = getListItem(editor, editor.value.startBlock);\n editor.splitDescendantsByKey(listItem.key, selection.start.key, selection.start.offset);\n };\n\n var onShiftEnter = function onShiftEnter(event, editor, next) {\n event.preventDefault();\n editor.insertText(\"\\n\");\n };\n\n var schema = createSchema({\n blocks: blocks\n });\n var normalizeNode = createNormalizeNode({\n blocks: blocks\n });\n var renderBlock = createRenderBlock({\n blocks: blocks,\n classNames: classNames\n });\n return [{\n commands: {\n wrapList: commands.wrapList,\n unwrapList: commands.unwrapList,\n toggleList: commands.toggleList,\n decreaseListItemDepth: commands.decreaseListItemDepth,\n increaseListItemDepth: commands.increaseListItemDepth\n },\n normalizeNode: normalizeNode,\n renderBlock: renderBlock,\n renderNode: renderBlock,\n // COMPAT: renderNode is removed in slate\n schema: schema\n }, Keymap({\n backspace: onBackspace,\n enter: onEnter,\n \"shift+enter\": onShiftEnter,\n tab: \"increaseListItemDepth\",\n \"shift+tab\": \"decreaseListItemDepth\"\n }, {\n \"if\": function _if(editor) {\n return !!getListItem(editor, editor.value.startBlock);\n }\n })];\n});\n\nexport default index;\n","import { useQuery } from '@apollo/client'\n\nimport type { ColorValue } from '../utils/types'\nimport type { Length as LengthValue } from '../../prop-controllers'\nimport { DeviceOverride } from '../../prop-controllers'\nimport { TYPOGRAPHIES_BY_ID } from '../utils/queries'\n\nexport type TypographyStyleValue = {\n fontFamily?: string\n fontWeight?: number\n fontSize?: LengthValue\n color?: ColorValue\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n underline?: boolean\n strikethrough?: boolean\n italic?: boolean\n}\n\nexport type TypographyStyle = Array<DeviceOverride<TypographyStyleValue>>\n\nexport type Typography = {\n id: string\n name: string\n style: TypographyStyle\n}\n\nexport function useTypography(\n typographyId: string | null | undefined,\n): Typography | null | undefined {\n const { error, data } = useQuery(TYPOGRAPHIES_BY_ID, {\n skip: typographyId == null,\n variables: { ids: typographyId != null ? [typographyId] : [] },\n })\n\n if (typographyId == null || error != null) return null\n\n return data?.typographies[0] as Typography | null\n}\n","import { useQuery } from '@apollo/client'\n\nimport { Length as LengthValue } from '../../../../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../../../../utils/types'\nimport { findDeviceOverride } from '../../../../../../../utils/devices'\nimport type { DeviceOverride } from '../../../../../../../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../../../../../../../utils/queries'\nimport { useTypography, TypographyStyle } from '../../../../../../../hooks/useTypography'\n\nexport type TypographyMarkDataValue = {\n fontWeight?: number\n fontSize?: LengthValue\n fontFamily?: string\n color?: Color\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n italic?: boolean\n underline?: boolean\n strikethrough?: boolean\n}\n\nexport type TypographyMarkValue = {\n id: string | null | undefined\n style: TypographyStyle\n}\n\nexport type TypographyMarkData = Array<DeviceOverride<TypographyMarkDataValue>>\n\nconst concat = <A extends unknown[], B extends unknown[]>(a: A, b: B) => a.concat(b)\nconst getSwatchId = ({ value: { color } }: any) => color && color.swatchId\nconst getDeviceId = ({ deviceId }: any) => deviceId\n\nconst withColor =\n (swatches: any) =>\n ({ value: { color, ...restOfValue }, ...rest }: any) => ({\n ...rest,\n value: {\n ...restOfValue,\n ...(color\n ? {\n color: {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n }\n : {}),\n },\n })\n\nexport const overrideTypographyStyle = <A>(\n source: Array<DeviceOverride<A>>,\n override: Array<DeviceOverride<A>>,\n): Array<DeviceOverride<A>> => {\n const devices = [...new Set(source.map(getDeviceId).concat(override.map(getDeviceId)))]\n\n return devices.map((deviceId: any) => ({\n deviceId,\n value: {\n ...(findDeviceOverride(source, deviceId) || { value: {} }).value,\n ...(findDeviceOverride(override, deviceId, v => v) || { value: {} }).value,\n },\n })) as DeviceOverride<A>[]\n}\n\nexport default function useTypographyMark(\n value: TypographyMarkValue | null | undefined,\n): TypographyMarkData | null | undefined {\n const typography = useTypography(value && value.id)\n\n const swatchIds = [\n (typography && typography.style.map(getSwatchId)) || [],\n (value && value.style.map(getSwatchId)) || [],\n ]\n .reduce(concat)\n .filter(Boolean)\n\n const { error: colorError, data: colorData = {} } = useQuery(SWATCHES_BY_ID, {\n skip: swatchIds == null || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n const { swatches = [] } = colorData\n\n if (colorError != null) return null\n\n return overrideTypographyStyle(\n (typography && typography.style.map(withColor(swatches))) || [],\n (value && value.style.map(withColor(swatches))) || [],\n )\n}\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport useTypographyMark, {\n TypographyMarkValue,\n TypographyMarkData,\n overrideTypographyStyle,\n TypographyMarkDataValue,\n} from './hooks/useTypographyMark'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { shallowMergeFallbacks } from '../../../../../../utils/devices'\n\nexport type { TypographyMarkValue }\nexport { overrideTypographyStyle }\n\nconst Span = styled.span<{ typographyStyle: TypographyMarkData | null | undefined }>`\n ${p =>\n cssMediaRules(\n [p.typographyStyle] as const,\n ([\n {\n color,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n uppercase,\n underline,\n strikethrough,\n italic,\n } = {} as TypographyMarkDataValue,\n ]) => css`\n ${color == null\n ? ''\n : css`\n color: ${colorToString(color)};\n `}\n\n ${fontFamily == null\n ? ''\n : css`\n font-family: '${fontFamily}';\n `}\n\n ${fontSize == null || fontSize.value == null || fontSize.unit == null\n ? ''\n : css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `}\n\n ${fontWeight == null\n ? ''\n : css`\n font-weight: ${fontWeight};\n `}\n\n ${lineHeight == null\n ? ''\n : css`\n line-height: ${lineHeight};\n `}\n\n ${letterSpacing == null\n ? ''\n : css`\n letter-spacing: ${letterSpacing / 10}em;\n `}\n\n ${underline == null && strikethrough == null\n ? ''\n : css`\n text-decoration: ${[\n Boolean(underline) && 'underline',\n Boolean(strikethrough) && 'line-through',\n ]\n .filter(Boolean)\n .join(' ')};\n `}\n\n ${uppercase == null\n ? ''\n : css`\n text-transform: ${uppercase === true ? 'uppercase' : 'initial'};\n `}\n\n ${italic == null\n ? ''\n : css`\n font-style: ${italic === true ? 'italic' : 'initial'};\n `}\n `,\n shallowMergeFallbacks,\n )}\n`\n\ntype BaseProps = { value: TypographyMarkValue }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Span>, keyof BaseProps>\n\nexport default function Mark({ value, ...restOfProps }: Props): JSX.Element {\n const typographyStyle = useTypographyMark(value)\n\n return <Span {...restOfProps} typographyStyle={typographyStyle} />\n}\n","import type { Plugin } from 'slate-react'\n\nimport Mark from '../components/Mark'\n\nconst TYPOGRAPHY_TYPE = 'typography'\n\nexport default function DeviceOverridesMarksPlugin(): Plugin {\n return {\n renderMark({ mark, children }, _editor, next) {\n if (mark.type === TYPOGRAPHY_TYPE) {\n return <Mark value={mark.data.get('value')}>{children}</Mark>\n }\n\n return next()\n },\n }\n}\n","import { forwardRef, ElementType, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport type { ResponsiveValue } from '../../../../../../../prop-controllers'\n\ntype StyledBlockProps = {\n textAlign?: ResponsiveValue<'left' | 'center' | 'right' | 'justify'>\n as?: ElementType\n}\n\nconst StyledBlock = styled.div<StyledBlockProps>`\n margin: 0;\n ${p =>\n cssMediaRules([p.textAlign] as const, ([textAlign]) =>\n textAlign == null\n ? css``\n : css`\n text-align: ${textAlign};\n `,\n )}\n\n ${p =>\n p.as === 'blockquote'\n ? css`\n padding: 0.5em 10px;\n font-size: 1.25em;\n font-weight: 300;\n border-left: 5px solid rgba(0, 0, 0, 0.1);\n `\n : ''}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof StyledBlock>\n\nexport default forwardRef<HTMLDivElement, Props>(function Block(\n { textAlign, ...restOfProps }: Props,\n ref,\n) {\n return <StyledBlock {...restOfProps} ref={ref} textAlign={textAlign} />\n})\n","import { Plugin } from 'slate-react'\n\nimport Block from '../components/Block'\n\nexport default function DeviceOverridesBlockPlugin(): Plugin {\n return {\n renderBlock(props, _editor, next): JSX.Element {\n const { node, attributes, children } = props\n const blockProps = { textAlign: node.data.get('textAlign') }\n\n switch (node.type) {\n case 'paragraph':\n return (\n <Block {...attributes} {...blockProps} as=\"p\">\n {children}\n </Block>\n )\n\n case 'heading-one':\n return (\n <Block {...attributes} {...blockProps} as=\"h1\">\n {children}\n </Block>\n )\n\n case 'heading-two':\n return (\n <Block {...attributes} {...blockProps} as=\"h2\">\n {children}\n </Block>\n )\n\n case 'heading-three':\n return (\n <Block {...attributes} {...blockProps} as=\"h3\">\n {children}\n </Block>\n )\n\n case 'heading-four':\n return (\n <Block {...attributes} {...blockProps} as=\"h4\">\n {children}\n </Block>\n )\n\n case 'heading-five':\n return (\n <Block {...attributes} {...blockProps} as=\"h5\">\n {children}\n </Block>\n )\n\n case 'heading-six':\n return (\n <Block {...attributes} {...blockProps} as=\"h6\">\n {children}\n </Block>\n )\n\n case 'blockquote':\n return (\n <Block {...attributes} {...blockProps} as=\"blockquote\">\n {children}\n </Block>\n )\n\n default:\n return next()\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\nimport styled from 'styled-components'\n\nimport { Link } from '../../../../../shared/Link'\n\nconst StyledLink = styled(Link)`\n text-decoration: none;\n`\n\nexport default function LinkPlugin(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'link': {\n const { data } = node\n\n return (\n <StyledLink {...attributes} link={data.toJS()}>\n {children}\n </StyledLink>\n )\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\n\nexport default function Inlines(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'code': {\n return <code {...attributes}>{children}</code>\n }\n\n case 'superscript': {\n return <sup {...attributes}>{children}</sup>\n }\n\n case 'subscript': {\n return <sub {...attributes}>{children}</sub>\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { ComponentPropsWithoutRef, forwardRef, useMemo } from 'react'\n\nimport { Editor as SlateEditor } from 'slate-react'\n\n// @ts-expect-error: no types for '@convertkit/slate-lists'\nimport Lists from '@convertkit/slate-lists'\nimport styled from 'styled-components'\n\nimport DeviceOverridesMarks from './plugins/DeviceOverridesMarks'\nimport DeviceOverridesBlocks from './plugins/DeviceOverridesBlocks'\nimport Link from './plugins/Link'\nimport Inlines from './plugins/Inlines'\n\nexport { overrideTypographyStyle } from './components/Mark'\n\ntype Props = ComponentPropsWithoutRef<typeof SlateEditor>\n\nexport const RichTextEditor = styled(\n forwardRef<SlateEditor, Props>(function RichTextEditor(\n { placeholder = 'Write some text...', ...restOfProps }: Props,\n ref,\n ) {\n const plugins = useMemo(\n () => [Lists(), Link(), Inlines(), DeviceOverridesBlocks(), DeviceOverridesMarks()],\n [],\n )\n\n return (\n <SlateEditor\n {...restOfProps}\n ref={ref}\n autoFocus={false}\n plugins={plugins}\n placeholder={placeholder}\n />\n )\n }),\n)`\n ul,\n ol {\n margin: 0;\n }\n`\n","import {\n useState,\n Ref,\n useImperativeHandle,\n forwardRef,\n useEffect,\n useCallback,\n useRef,\n KeyboardEvent as ReactKeyboardEvent,\n} from 'react'\nimport styled from 'styled-components'\nimport { Editor, OnChangeParam } from 'slate-react'\nimport { Value, ValueJSON } from 'slate'\n// @ts-expect-error: no types for 'slate-hotkeys'\nimport Hotkeys from 'slate-hotkeys'\n\nimport {\n ElementIDValue,\n MarginValue,\n RichTextDescriptor,\n RichTextValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { RichTextEditor } from './components/RichTextEditor'\nimport { useIsInBuilder } from '../../../react'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledRichTextEditor = styled(RichTextEditor)<{\n width: Props['width']\n margin: Props['margin']\n}>`\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst defaultText: ValueJSON = {\n document: { nodes: [{ object: 'block' as const, type: 'paragraph' as const, nodes: [] }] },\n data: {},\n}\n\nconst COMMIT_DEBOUNCE_DELAY = 500\n\ntype Descriptors = { text?: RichTextDescriptor }\n\nexport default forwardRef(function Text(\n { id, text, width, margin }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const [editor, setEditor] = useState<Editor | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const controller = propControllers?.text\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const el = editor?.findDOMNode([])\n\n return el instanceof Element ? getBox(el) : null\n },\n setPropControllers,\n }),\n [editor, setPropControllers],\n )\n\n useEffect(() => {\n if (editor) controller?.setSlateEditor(editor)\n }, [controller, editor])\n\n /**\n * We must keep local state so that we can reflect the user's typed changes immediately. At the\n * same time, though, the source of truth for the data is the prop data. This presents a\n * challenge: how do we keep local state in sync with the prop data without mangling user input as\n * data comes in?\n *\n * Consider, for example, that the user types \"Hello\". If at a later time, when the user is trying\n * to type \", world\" the component re-renders with prop data \"H\", \"He\", \"Hel\", \"Hell\", \"Hello\", it\n * will disrupt the user's typing. This could also happen as a result of the prop data changing\n * for other reasons, like collaborators changing the prop data concurrently. We want to avoid to\n * disrupt the user's typing, while at the same time display the \"true\" value as quickly as\n * possible.\n *\n * The approach we take here is to commit the prop data at an opportune time: as the user is\n * typing we avoid to commit prop data. But once they've stopped typing, we commit it as soon as\n * possible. This is known as a debounce.\n */\n const [value, setValue] = useState(() => {\n const { selection, ...textWithoutSelection } = text ?? defaultText\n\n return Value.fromJSON(textWithoutSelection)\n })\n const [shouldCommit, setShouldCommit] = useState(true)\n\n useEffect(() => {\n if (shouldCommit) {\n const nextValue = Value.fromJSON(text ?? defaultText)\n\n setValue(currentValue =>\n currentValue.selection.isBlurred\n ? Value.fromJSON(nextValue.toJSON({ preserveSelection: false }))\n : nextValue,\n )\n }\n }, [shouldCommit, text])\n\n useEffect(() => {\n if (shouldCommit) return\n\n const timeoutId = window.setTimeout(() => {\n setShouldCommit(true)\n }, COMMIT_DEBOUNCE_DELAY)\n\n return () => {\n window.clearTimeout(timeoutId)\n }\n }, [shouldCommit])\n\n function handleChange(change: OnChangeParam) {\n setValue(change.value as Value)\n\n if (change.value.document !== value.document) {\n setShouldCommit(false)\n\n controller?.onChange(change)\n }\n }\n\n // HACK: Slate holds on to the very first DOM event handlers passed in and doesn't update them\n // even if they change. Since `controller` is first `undefined` then we must use a ref.\n const lastController = useRef(controller)\n if (lastController.current !== controller) lastController.current = controller\n const handleFocus = useCallback(() => {\n lastController.current?.focus()\n }, [])\n const handleKeyDown = useCallback(\n (event: ReactKeyboardEvent, _editor: Editor, next: () => any) => {\n if (Hotkeys.isUndo(event)) {\n lastController.current?.undo()\n\n return true\n }\n\n if (Hotkeys.isRedo(event)) {\n lastController.current?.redo()\n\n return true\n }\n\n return next()\n },\n [],\n )\n\n const isInBuilder = useIsInBuilder()\n\n return (\n <StyledRichTextEditor\n // @ts-expect-error: types don't allow for 'id' prop even though it's used.\n id={id}\n ref={setEditor}\n readOnly={!isInBuilder}\n width={width}\n margin={margin}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n />\n )\n})\n"],"names":["__assign","createContext","useContext","React","isBrowser","useLayoutEffect","useEffect","useState","useRef","useCallback","getVelocity","useMemo","clamp","sanitize","singleColorRegex","number","alpha","createUnitType","percent","isColorString","alpha$1","clampRgbUnit","rgbUnit","rgba","color","analyse","test","getAnimatableNone","keyframes","animate","xKeys","yKeys","React__default","forwardRef","isCSSVariable","calcOrigin","createElement","scrapeMotionValuesFromProps","supportsPointerEvents","supportsTouchEvents","getComputedStyle","MeasureLayoutWithContext","_super","__extends","apply","arguments","prototype","componentDidMount","_this","_a","props","visualElement","layoutGroup","switchLayoutGroup","layoutId","projection","addScaleCorrector","defaultScaleCorrectors","group","add","register","root","didUpdate","addEventListener","safeToRemove","setOptions","options","onExitComplete","globalProjectionState","hasEverUpdated","getSnapshotBeforeUpdate","prevProps","layoutDependency","drag","isPresent","undefined","willUpdate","promote","relegate","sync","postRender","getStack","members","length","componentDidUpdate","currentAnimation","isLead","componentWillUnmount","promoteContext","scheduleCheckAfterUnmount","remove","deregister","render","Component","__read","usePresence","LayoutGroupContext","SwitchLayoutGroupContext","borderRadius","correctBorderRadius","applyTo","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","boxShadow","correctBoxShadow","PlaceholderBase","styled","div","hide","ref","restOfProps","overflow","gql","useQuery","defaultExitedProps","opacity","x","y","scale","boxAnimations","none","entered","exited","transition","fadeIn","fadeLeft","type","ease","fadeRight","fadeUp","fadeDown","blurIn","filter","scaleDown","scaleUp","mergeCustomTransitionWithDefault","transitions","Object","keys","reduce","a","c","useElementOnScreen","element","isVisible","setIsVisible","observer","IntersectionObserver","intersectionCallback","observe","unobserve","entry","isIntersecting","DEFAULT_BOX_ANIMATE_TYPE","DEFAULT_BOX_ANIMATE_DELAY","DEFAULT_BOX_ANIMATE_DURATION","DEFAULT_ITEM_ANIMATE_TYPE","DEFAULT_ITEM_ANIMATE_DELAY","DEFAULT_ITEM_ANIMATE_DURATION","DEFAULT_ITEM_STAGGER_DURATION","useBoxAnimations","boxElement","elements","reducedMotion","useReducedMotion","boxAnimateType","useMediaQuery","boxAnimateDuration","boxAnimateDelay","itemAnimateType","itemAnimateDuration","itemAnimateDelay","itemStaggerDuration","isBoxVisible","rootMargin","threshold","itemControls","useAnimation","boxControls","setSequence","variant","stop","set","playSequence","start","map","e","key","sort","join","boxVariant","itemVariant","initial","container","parent","variants","child","delay","duration","delayChildren","staggerChildren","joinResponsiveValues","css","overflowY","overflowX","ownerDocument","defaultView","parentElement","isScrollable","getScrollParent","strength","children","rest","containerScrollTop","setContainerScrollTop","lastScrollParentScrollTop","current","containerDocument","scrollParent","eventTarget","documentElement","scrollTop","requestAnimationFrame","top","containerTop","bottom","containerBottom","getBoundingClientRect","scrollParentTop","scrollParentBottom","innerHeight","scrollParentScrollTop","pageYOffset","scrollParentHeight","scrollParentScrollDelta","isContainerVisible","containerScrollRemaining","scrollParentScrollRemaining","parallaxRatio","containerScrollDelta","handleScroll","removeEventListener","getProps","style","restOfChildrenProps","position","left","right","transform","ReactPropTypesSecret","require$$0","propTypesModule","_interopRequireDefault","require$$1","require$$2","require$$3","_typeof","_unsupportedIterableToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arrayLikeToArray","_slicedToArray","_defineProperty","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","Container","Mask","backgroundColor","visible","getScale","aspectRatio","zoom","offsetWidth","width","offsetHeight","height","computedAspectRatio","Math","max","url","maskColor","ready","setReady","setScale","containerEl","handleResize","ReactPlayer","canPlay","vimeo","playerOptions","background","youtube","playerVars","origin","location","wistia","endVideoBehavior","playbackRateControl","playbar","playButton","volumeControl","fullscreenButton","muted","swatch","colorToString","hue","saturation","lightness","getStopsStyle","stops","getColor","getAspectRatio","AbsoluteFill","BackgroundsContainer","p","cssMediaRules","visibility","backgrounds","value","deviceId","v","reverse","bg","payload","id","publicUrl","repeat","size","parallax","backgroundPosition","getParallaxProps","NextImage","backgroundImage","backgroundRepeat","backgroundSize","angle","isRadial","gradient","OuterContainer","motion","handle","setHandle","useBackgrounds","Children","only","StyledBackgroundsContainer","cssWidth","cssMargin","cssBorderRadius","alignSelf","Grid","cssPadding","cssBorder","cssBoxShadow","alignContent","GridItem","cssGridItem","alignItems","margin","padding","border","rowGap","columnGap","hidePlaceholder","verticalAlign","innerRef","setBoxElement","getBoxModel","paddingBoxElement","borderBoxElement","marginBoxElement","borderBox","paddingBoxComputedStyle","borderBoxComputedStyle","marginBoxComputedStyle","parse","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","marginTop","marginRight","marginBottom","marginLeft","createBox","borderData","useBorder","boxShadowData","useBoxShadow","index","columns","Element","Placeholder","colorName","isArrayish","concat","swizzle","simpleSwizzleModule","name","colorStringModule","convert","conversionsModule","conversions","route","Link","link","onClick","page","usePage","pageId","elementKey","elementIdConfig","elementId","useElementId","href","target","block","pathname","openInNewTab","to","subject","body","phoneNumber","RangeError","event","defaultPrevented","currentTarget","isContentEditable","preventDefault","hash","URL","error","view","document","querySelector","behavior","history","pushState","NextLink","handleClick","StyledButton","shape","textColor","fontSize","small","medium","large","unit","square","rounded","pill","flat","property","ColorHelper","darken","hex","outline","shadow","clear","toString","blocky","bubbly","lighten","saturate","skewed","cssTextStyle","textStyle","useColor","_extends","src","Promise","resolve","reject","image","Image","onload","onerror","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","baseWidthSize","override","min","sourceSizes","sourceSize","ImageContainer","dimensions","UnoptimizedImage","img","file","altText","placeholder","placeholders","className","fileData","useFile","imageSrc","dataDimensions","measuredDimensions","setMeasuredDimensions","isInBuilder","useIsInBuilder","cleanedUp","then","naturalWidth","naturalHeight","catch","console","imageSizes","LeftChevron","RightChevron","Wrapper","Arrow","Slop","hidden","Slide","pageSize","Reel","gap","Page","LeftSlop","RightSlop","ClipMask","Dots","Dot","active","SWIPE_THRESHOLD","swipePower","dx","velocity","images","responsivePageSize","step","responsiveStep","slideAlignment","showDots","showArrows","arrowPosition","arrowColor","arrowBackground","dotColor","autoplay","slideBorder","slideBorderRadius","setIndex","swipe","startIndex","wrap","endIndex","pageCount","ceil","pageIndex","isFirstPage","isLastPage","paginate","pageDistance","direction","abs","remaining","slice","distance","animation","bindPage","useGesture","onDrag","movement","mx","delta","onDragEnd","axis","bounds","rubberband","intervalId","setInterval","clearInterval","imageProps","Array","from","_","i","Block","Label","Segment","blockColor","numberColor","numberFont","labelColor","labelFont","getRemaining","date","days","hours","minutes","seconds","timeDiff","Date","getTime","now","floor","parseInt","String","daysLabel","hoursLabel","minutesLabel","secondsLabel","setRemaining","IE11MinHeightContainer","Line","thickness","Error","defaultHtml","SCRIPT_TAG","html","setContainer","shouldRender","setShouldRender","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tagName","toLowerCase","FILTER_ACCEPT","FILTER_REJECT","nodes","nextNode","push","currentNode","script","textContent","attributes","forEach","setAttribute","parentNode","insertBefore","removeChild","hasAttribute","__html","_path","GutterContainer","gutter","first","last","PlaceholderLink","button","links","DROP_DOWN_MENU_WIDTH","DropDownMenu","dropIn","DropDownContainer","StyledDropDownItem","fontWeight","fontStyle","letterSpacing","textTransform","includes","label","caret","setPosition","innerWidth","offsetLeft","display","fill","CaretDown8","Plus8","ArrowDown8","ChevronDown8","DropDownItem","open","ButtonLink","Button","StyledLink","onClose","isOpen","setIsOpen","prev","coverRight","coverLeft","CloseIconContainer","closeIconColor","Times16","flexDirection","flexShrink","Fragment","DropDownButton","nav","LinksContainer","alignment","mobileMenuAnimation","OpenIconContainer","linkTextStyle","showLogo","logoFile","logoWidth","logoAltText","logoLink","mobileMenuOpenIconColor","mobileMenuCloseIconColor","mobileMenuBackgroundColor","flexGrow","justifyContent","MobileMenu28","Normalize","createGlobalStyle","normalize","SocialLinksOptions","icon","LogoAngellist20","brandColor","LogoCodepen20","LogoDribbble20","LogoFacebook20","LogoGithub20","LogoInstagram20","LogoLinkedin20","LogoMedium20","LogoPinterest20","LogoReddit20","LogoRss20","LogoSnapchat20","LogoSoundcloud20","LogoSpotify20","LogoTelegram20","LogoTumblr20","LogoTwitch20","LogoTwitter20","LogoWhatsapp20","LogoVimeo20","LogoYelp20","LogoYoutube20","hoverStyle","circle","naked","grow","shrink","fade","fillData","backgroundColorData","option","o","lib","IS_MAC","isHotkey","slicedToArray","isKeyHotkey","Text","Span","span","typographyStyle","fontFamily","lineHeight","uppercase","underline","strikethrough","italic","Boolean","shallowMergeFallbacks","useTypographyMark","TYPOGRAPHY_TYPE","renderMark","mark","_editor","next","data","get","StyledBlock","textAlign","as","renderBlock","blockProps","renderInline","toJS","RichTextEditor","plugins","Lists","Inlines","DeviceOverridesBlocks","DeviceOverridesMarks","SlateEditor","StyledRichTextEditor","defaultText","object","COMMIT_DEBOUNCE_DELAY","text","editor","setEditor","propControllers","setPropControllers","controller","el","findDOMNode","getBox","setSlateEditor","setValue","selection","textWithoutSelection","Value","fromJSON","shouldCommit","setShouldCommit","nextValue","currentValue","isBlurred","toJSON","preserveSelection","timeoutId","window","setTimeout","clearTimeout","change","onChange","lastController","handleFocus","focus","handleKeyDown","Hotkeys","isUndo","undo","isRedo","redo","handleChange"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|