react-awesome-reveal 4.2.0 → 4.2.2

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # React Awesome Reveal
2
2
 
3
3
  [![Version](https://badgen.net/npm/v/react-awesome-reveal)](https://www.npmjs.com/package/react-awesome-reveal/v/latest)
4
- [![Last Commit](https://badgen.net/github/last-commit/morellodev/react-awesome-reveal)](https://github.com/morellodev/react-awesome-reveal/commits/master)
4
+ [![Last Commit](https://badgen.net/github/last-commit/morellodev/react-awesome-reveal)](https://github.com/morellodev/react-awesome-reveal/commits/main)
5
5
  [![Downloads](https://badgen.net/npm/dt/react-awesome-reveal)](https://www.npmjs.com/package/react-awesome-reveal/v/latest)
6
6
  [![Size](https://badgen.net/bundlephobia/minzip/react-awesome-reveal)](https://bundlephobia.com/result?p=react-awesome-reveal@latest)
7
7
  [![License](https://badgen.net/npm/license/react-awesome-reveal)](https://www.npmjs.com/package/react-awesome-reveal/v/latest)
package/dist/index.js CHANGED
@@ -610,10 +610,7 @@ function matchIfOrNull(onTrue) {
610
610
  // src/Reveal.tsx
611
611
  var import_jsx_runtime = require("@emotion/react/jsx-runtime");
612
612
  function hideWhen(condition) {
613
- return matchIf(
614
- () => ({ opacity: 0 }),
615
- () => ({ opacity: 1 })
616
- )(condition);
613
+ return matchIfOrNull(() => ({ opacity: 0 }))(condition);
617
614
  }
618
615
  var Reveal = (props) => {
619
616
  const {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/AttentionSeeker.tsx","../src/animations/attention_seekers/bounce.ts","../src/animations/attention_seekers/flash.ts","../src/animations/attention_seekers/headShake.ts","../src/animations/attention_seekers/heartBeat.ts","../src/animations/attention_seekers/jello.ts","../src/animations/attention_seekers/pulse.ts","../src/animations/attention_seekers/rubberBand.ts","../src/animations/attention_seekers/shake.ts","../src/animations/attention_seekers/shakeX.ts","../src/animations/attention_seekers/shakeY.ts","../src/animations/attention_seekers/swing.ts","../src/animations/attention_seekers/tada.ts","../src/animations/attention_seekers/wobble.ts","../src/Reveal.tsx","../src/animations/fading_entrances/fadeIn.ts","../src/animations/fading_entrances/fadeInBottomLeft.ts","../src/animations/fading_entrances/fadeInBottomRight.ts","../src/animations/fading_entrances/fadeInDown.ts","../src/animations/fading_entrances/fadeInDownBig.ts","../src/animations/fading_entrances/fadeInLeft.ts","../src/animations/fading_entrances/fadeInLeftBig.ts","../src/animations/fading_entrances/fadeInRight.ts","../src/animations/fading_entrances/fadeInRightBig.ts","../src/animations/fading_entrances/fadeInTopLeft.ts","../src/animations/fading_entrances/fadeInTopRight.ts","../src/animations/fading_entrances/fadeInUp.ts","../src/animations/fading_entrances/fadeInUpBig.ts","../src/utils/animations.ts","../src/utils/guards.ts","../src/utils/patterns.ts","../src/components/Bounce.tsx","../src/animations/bouncing_entrances/bounceIn.ts","../src/animations/bouncing_entrances/bounceInDown.ts","../src/animations/bouncing_entrances/bounceInLeft.ts","../src/animations/bouncing_entrances/bounceInRight.ts","../src/animations/bouncing_entrances/bounceInUp.ts","../src/animations/bouncing_exits/bounceOut.ts","../src/animations/bouncing_exits/bounceOutDown.ts","../src/animations/bouncing_exits/bounceOutLeft.ts","../src/animations/bouncing_exits/bounceOutRight.ts","../src/animations/bouncing_exits/bounceOutUp.ts","../src/components/Fade.tsx","../src/animations/fading_exits/fadeOut.ts","../src/animations/fading_exits/fadeOutBottomLeft.ts","../src/animations/fading_exits/fadeOutBottomRight.ts","../src/animations/fading_exits/fadeOutDown.ts","../src/animations/fading_exits/fadeOutDownBig.ts","../src/animations/fading_exits/fadeOutLeft.ts","../src/animations/fading_exits/fadeOutLeftBig.ts","../src/animations/fading_exits/fadeOutRight.ts","../src/animations/fading_exits/fadeOutRightBig.ts","../src/animations/fading_exits/fadeOutTopLeft.ts","../src/animations/fading_exits/fadeOutTopRight.ts","../src/animations/fading_exits/fadeOutUp.ts","../src/animations/fading_exits/fadeOutUpBig.ts","../src/components/Flip.tsx","../src/animations/flippers/flip.ts","../src/animations/flippers/flipInX.ts","../src/animations/flippers/flipInY.ts","../src/animations/flippers/flipOutX.ts","../src/animations/flippers/flipOutY.ts","../src/animations/specials/hinge.ts","../src/animations/specials/jackInTheBox.ts","../src/animations/specials/rollIn.ts","../src/animations/specials/rollOut.ts","../src/components/Hinge.tsx","../src/components/JackInTheBox.tsx","../src/components/Roll.tsx","../src/components/Rotate.tsx","../src/animations/rotating_entrances/rotateIn.ts","../src/animations/rotating_entrances/rotateInDownLeft.ts","../src/animations/rotating_entrances/rotateInDownRight.ts","../src/animations/rotating_entrances/rotateInUpLeft.ts","../src/animations/rotating_entrances/rotateInUpRight.ts","../src/animations/rotating_exits/rotateOut.ts","../src/animations/rotating_exits/rotateOutDownLeft.ts","../src/animations/rotating_exits/rotateOutDownRight.ts","../src/animations/rotating_exits/rotateOutUpLeft.ts","../src/animations/rotating_exits/rotateOutUpRight.ts","../src/components/Slide.tsx","../src/animations/sliding_entrances/slideInDown.ts","../src/animations/sliding_entrances/slideInLeft.ts","../src/animations/sliding_entrances/slideInRight.ts","../src/animations/sliding_entrances/slideInUp.ts","../src/animations/sliding_exits/slideOutDown.ts","../src/animations/sliding_exits/slideOutLeft.ts","../src/animations/sliding_exits/slideOutRight.ts","../src/animations/sliding_exits/slideOutUp.ts","../src/components/Zoom.tsx","../src/animations/zooming_entrances/zoomIn.ts","../src/animations/zooming_entrances/zoomInDown.ts","../src/animations/zooming_entrances/zoomInLeft.ts","../src/animations/zooming_entrances/zoomInRight.ts","../src/animations/zooming_entrances/zoomInUp.ts","../src/animations/zooming_exits/zoomOut.ts","../src/animations/zooming_exits/zoomOutDown.ts","../src/animations/zooming_exits/zoomOutLeft.ts","../src/animations/zooming_exits/zoomOutRight.ts","../src/animations/zooming_exits/zoomOutUp.ts"],"sourcesContent":["export * from \"./components\";\nexport * from \"./Reveal\";\nexport { Reveal as default } from \"./Reveal\";\n","import type { Keyframes } from \"@emotion/serialize\";\nimport { type CSSProperties, useMemo } from \"react\";\n\nimport {\n bounce,\n flash,\n headShake,\n heartBeat,\n jello,\n pulse,\n rubberBand,\n shake,\n shakeX,\n shakeY,\n swing,\n tada,\n wobble,\n} from \"../animations/attention_seekers\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype AttentionSeekerEffect =\n | \"bounce\"\n | \"flash\"\n | \"headShake\"\n | \"heartBeat\"\n | \"jello\"\n | \"pulse\"\n | \"rubberBand\"\n | \"shake\"\n | \"shakeX\"\n | \"shakeY\"\n | \"swing\"\n | \"tada\"\n | \"wobble\";\n\nexport interface AttentionSeekerProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * The animation effect to use for this attention seeker.\n * @default \"bounce\"\n */\n effect?: AttentionSeekerEffect;\n}\n\nfunction getStyles(effect: AttentionSeekerEffect): [Keyframes, CSSProperties?] {\n switch (effect) {\n case \"bounce\":\n return [bounce, { transformOrigin: \"center bottom\" }];\n case \"flash\":\n return [flash];\n case \"headShake\":\n return [headShake, { animationTimingFunction: \"ease-in-out\" }];\n case \"heartBeat\":\n return [heartBeat, { animationTimingFunction: \"ease-in-out\" }];\n case \"jello\":\n return [jello, { transformOrigin: \"center\" }];\n case \"pulse\":\n return [pulse, { animationTimingFunction: \"ease-in-out\" }];\n case \"rubberBand\":\n return [rubberBand];\n case \"shake\":\n return [shake];\n case \"shakeX\":\n return [shakeX];\n case \"shakeY\":\n return [shakeY];\n case \"swing\":\n return [swing, { transformOrigin: \"top center\" }];\n case \"tada\":\n return [tada];\n case \"wobble\":\n return [wobble];\n }\n}\n\nexport const AttentionSeeker: React.FC<AttentionSeekerProps> = (props) => {\n const { effect = \"bounce\", style, ...rest } = props;\n\n const [keyframes, animationCss] = useMemo(() => getStyles(effect), [effect]);\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/bounce.css}\n */\nexport const bounce = keyframes`\n from,\n 20%,\n 53%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: translate3d(0, 0, 0);\n }\n\n 40%,\n 43% {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transform: translate3d(0, -30px, 0) scaleY(1.1);\n }\n\n 70% {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transform: translate3d(0, -15px, 0) scaleY(1.05);\n }\n\n 80% {\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: translate3d(0, 0, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, -4px, 0) scaleY(1.02);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/flash.css}\n */\nexport const flash = keyframes`\n from,\n 50%,\n to {\n opacity: 1;\n }\n\n 25%,\n 75% {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/headShake.css}\n */\nexport const headShake = keyframes`\n 0% {\n transform: translateX(0);\n }\n\n 6.5% {\n transform: translateX(-6px) rotateY(-9deg);\n }\n\n 18.5% {\n transform: translateX(5px) rotateY(7deg);\n }\n\n 31.5% {\n transform: translateX(-3px) rotateY(-5deg);\n }\n\n 43.5% {\n transform: translateX(2px) rotateY(3deg);\n }\n\n 50% {\n transform: translateX(0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/heartBeat.css}\n */\nexport const heartBeat = keyframes`\n 0% {\n transform: scale(1);\n }\n\n 14% {\n transform: scale(1.3);\n }\n\n 28% {\n transform: scale(1);\n }\n\n 42% {\n transform: scale(1.3);\n }\n\n 70% {\n transform: scale(1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/jello.css}\n */\nexport const jello = keyframes`\n from,\n 11.1%,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 22.2% {\n transform: skewX(-12.5deg) skewY(-12.5deg);\n }\n\n 33.3% {\n transform: skewX(6.25deg) skewY(6.25deg);\n }\n\n 44.4% {\n transform: skewX(-3.125deg) skewY(-3.125deg);\n }\n\n 55.5% {\n transform: skewX(1.5625deg) skewY(1.5625deg);\n }\n\n 66.6% {\n transform: skewX(-0.78125deg) skewY(-0.78125deg);\n }\n\n 77.7% {\n transform: skewX(0.390625deg) skewY(0.390625deg);\n }\n\n 88.8% {\n transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/pulse.css}\n */\nexport const pulse = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/rubberBand.css}\n */\nexport const rubberBand = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n transform: scale3d(0.95, 1.05, 1);\n }\n\n 75% {\n transform: scale3d(1.05, 0.95, 1);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shake.css}\n */\nexport const shake = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(10px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shakeX.css}\n */\nexport const shakeX = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(10px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shakeY.css}\n */\nexport const shakeY = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(0, -10px, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(0, 10px, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/swing.css}\n */\nexport const swing = keyframes`\n 20% {\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n to {\n transform: rotate3d(0, 0, 1, 0deg);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/tada.css}\n */\nexport const tada = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 10%,\n 20% {\n transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%,\n 50%,\n 70%,\n 90% {\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%,\n 60%,\n 80% {\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/wobble.css}\n */\nexport const wobble = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { ClassNames } from \"@emotion/react\";\nimport type { Keyframes, SerializedStyles } from \"@emotion/serialize\";\nimport { type CSSProperties, Children, isValidElement, useMemo } from \"react\";\nimport { InView, useInView } from \"react-intersection-observer\";\nimport { isFragment } from \"react-is\";\n\nimport { fadeInLeft } from \"./animations/fading_entrances\";\nimport { getAnimationCss } from \"./utils/animations\";\nimport { isNullable, isStringLike } from \"./utils/guards\";\nimport { matchIf, matchIfOrNull } from \"./utils/patterns\";\n\nfunction hideWhen(condition: boolean) {\n return matchIf<CSSProperties, CSSProperties>(\n () => ({ opacity: 0 }),\n () => ({ opacity: 1 })\n )(condition);\n}\n\nexport interface RevealProps {\n /**\n * Stagger its children animations.\n * @default false\n */\n cascade?: boolean;\n /**\n * Factor that affects the delay that each animated element in a cascade animation will be assigned.\n * @default 0.5\n */\n damping?: number;\n /**\n * Initial delay, in milliseconds.\n * @default 0\n */\n delay?: number;\n /**\n * Animation duration, in milliseconds.\n * @default 1000\n */\n duration?: number;\n /**\n * Float number between 0 and 1 indicating how much the element should be in viewport before the animation is triggered.\n * @default 0\n */\n fraction?: number;\n /**\n * Custom Emotion animation keyframes.\n */\n keyframes?: Keyframes;\n /**\n * Specifies if the animation should run only once or everytime the element enters/exits/re-enters the viewport.\n * @default false\n */\n triggerOnce?: boolean;\n /**\n * Class names to add to the container element.\n */\n className?: string;\n /**\n * Inline styles to add to the container element.\n */\n style?: React.CSSProperties;\n /**\n * Class names to add to the child element.\n */\n childClassName?: string;\n /**\n * Inline styles to add to the child element.\n */\n childStyle?: React.CSSProperties;\n /**\n * From React 18, children must be explicitly typed.\n * @see https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-typescript-definitions\n */\n children?: React.ReactNode;\n /**\n * Callback executed when the element enters or leaves the viewport.\n * If more than one element is being animated, this function is called\n * on each element.\n *\n * @param inView The current visibility flag.\n * @param entry The current IntersectionObserverEntry.\n */\n onVisibilityChange?(inView: boolean, entry: IntersectionObserverEntry): void;\n}\n\nexport const Reveal: React.FC<RevealProps> = (props) => {\n const {\n cascade = false,\n damping = 0.5,\n delay = 0,\n duration = 1000,\n fraction = 0,\n keyframes = fadeInLeft,\n triggerOnce = false,\n className,\n style,\n childClassName,\n childStyle,\n children,\n onVisibilityChange,\n } = props;\n\n const animationStyles = useMemo(\n () =>\n getAnimationCss({\n keyframes,\n duration,\n }),\n [duration, keyframes]\n );\n\n if (isNullable(children)) return null;\n\n if (isStringLike(children))\n return (\n <TextReveal {...props} animationStyles={animationStyles}>\n {String(children)}\n </TextReveal>\n );\n\n if (isFragment(children))\n return <FragmentReveal {...props} animationStyles={animationStyles} />;\n\n return (\n <>\n {Children.map(children, (node, index) => {\n if (!isValidElement(node)) return null;\n\n const nodeDelay = delay + (cascade ? index * duration * damping : 0);\n\n switch (node.type) {\n case \"ol\":\n case \"ul\":\n return (\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n className={cx(className, node.props.className)}\n style={Object.assign({}, style, node.props.style)}\n >\n <Reveal {...props}>{node.props.children}</Reveal>\n </node.type>\n )}\n </ClassNames>\n );\n case \"li\":\n return (\n <InView\n threshold={fraction}\n triggerOnce={triggerOnce}\n onChange={onVisibilityChange}\n >\n {({ inView, ref }) => (\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n ref={ref}\n className={cx(childClassName, node.props.className)}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign(\n {},\n childStyle,\n node.props.style,\n hideWhen(!inView),\n { animationDelay: nodeDelay + \"ms\" }\n )}\n />\n )}\n </ClassNames>\n )}\n </InView>\n );\n default:\n return (\n <InView\n threshold={fraction}\n triggerOnce={triggerOnce}\n onChange={onVisibilityChange}\n >\n {({ inView, ref }) => (\n <div\n ref={ref}\n className={className}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, style, {\n animationDelay: nodeDelay + \"ms\",\n })}\n >\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n className={cx(childClassName, node.props.className)}\n style={Object.assign(\n {},\n childStyle,\n node.props.style\n )}\n />\n )}\n </ClassNames>\n </div>\n )}\n </InView>\n );\n }\n })}\n </>\n );\n};\n\nconst textBaseStyles: CSSProperties = {\n display: \"inline-block\",\n whiteSpace: \"pre\",\n};\n\nconst TextReveal: React.FC<\n RevealProps & { animationStyles: SerializedStyles; children: string }\n> = (props) => {\n const {\n animationStyles,\n cascade = false,\n damping = 0.5,\n delay = 0,\n duration = 1000,\n fraction = 0,\n triggerOnce = false,\n className,\n style,\n children,\n onVisibilityChange,\n } = props;\n\n const { ref, inView } = useInView({\n triggerOnce,\n threshold: fraction,\n onChange: onVisibilityChange,\n });\n\n return matchIf(\n () => (\n <div\n ref={ref}\n className={className}\n style={Object.assign({}, style, textBaseStyles)}\n >\n {children.split(\"\").map((char, index) => (\n <span\n key={index}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, hideWhen(!inView), {\n animationDelay: delay + index * duration * damping + \"ms\",\n })}\n >\n {char}\n </span>\n ))}\n </div>\n ),\n () => <FragmentReveal {...props}>{children}</FragmentReveal>\n )(cascade);\n};\n\nconst FragmentReveal: React.FC<\n RevealProps & { animationStyles: SerializedStyles }\n> = (props) => {\n const {\n animationStyles,\n fraction = 0,\n triggerOnce = false,\n className,\n style,\n children,\n onVisibilityChange,\n } = props;\n\n const { ref, inView } = useInView({\n triggerOnce,\n threshold: fraction,\n onChange: onVisibilityChange,\n });\n\n return (\n <div\n ref={ref}\n className={className}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, style, hideWhen(!inView))}\n >\n {children}\n </div>\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeIn.css}\n */\nexport const fadeIn = keyframes`\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInBottomLeft.css}\n */\nexport const fadeInBottomLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInBottomRight.css}\n */\nexport const fadeInBottomRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInDown.css}\n */\nexport const fadeInDown = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInDownBig.css}\n */\nexport const fadeInDownBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInLeft.css}\n */\nexport const fadeInLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInLeftBig.css}\n */\nexport const fadeInLeftBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInRight.css}\n */\nexport const fadeInRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInRightBig.css}\n */\nexport const fadeInRightBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInTopLeft.css}\n */\nexport const fadeInTopLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInTopRight.css}\n */\nexport const fadeInTopRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInUp.css}\n */\nexport const fadeInUp = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInUpBig.css}\n */\nexport const fadeInUpBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { css } from \"@emotion/react\";\n\nimport { fadeInLeft } from \"../animations/fading_entrances\";\n\nexport function getAnimationCss({\n duration = 1000,\n delay = 0,\n timingFunction = \"ease\",\n keyframes = fadeInLeft,\n iterationCount = 1,\n}) {\n return css`\n animation-duration: ${duration}ms;\n animation-timing-function: ${timingFunction};\n animation-delay: ${delay}ms;\n animation-name: ${keyframes};\n animation-direction: normal;\n animation-fill-mode: both;\n animation-iteration-count: ${iterationCount};\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n `;\n}\n","export function isNullable(a: unknown): a is null | undefined {\n return a == undefined;\n}\n\nexport function isStringLike(\n value: unknown\n): value is string | number | boolean {\n return (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n}\n","export function matchIf<T, F>(onTrue: () => T, onFalse: () => F) {\n return (condition: boolean) => (condition ? onTrue() : onFalse());\n}\n\nexport function matchIfOrNull<T>(onTrue: () => T) {\n return matchIf(onTrue, () => null);\n}\n","import { useMemo } from \"react\";\n\nimport {\n bounceIn,\n bounceInDown,\n bounceInLeft,\n bounceInRight,\n bounceInUp,\n} from \"../animations/bouncing_entrances\";\nimport {\n bounceOut,\n bounceOutDown,\n bounceOutLeft,\n bounceOutRight,\n bounceOutUp,\n} from \"../animations/bouncing_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype BounceDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface BounceProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: BounceDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: BounceDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? bounceOutDown : bounceInDown;\n case \"left\":\n return reverse ? bounceOutLeft : bounceInLeft;\n case \"right\":\n return reverse ? bounceOutRight : bounceInRight;\n case \"up\":\n return reverse ? bounceOutUp : bounceInUp;\n default:\n return reverse ? bounceOut : bounceIn;\n }\n}\n\nexport const Bounce: React.FC<BounceProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceIn.css}\n */\nexport const bounceIn = keyframes`\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 20% {\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n transform: scale3d(0.97, 0.97, 0.97);\n }\n\n to {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInDown.css}\n */\nexport const bounceInDown = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0) scaleY(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0) scaleY(0.9);\n }\n\n 75% {\n transform: translate3d(0, -10px, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, 5px, 0) scaleY(0.985);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInLeft.css}\n */\nexport const bounceInLeft = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0) scaleX(1);\n }\n\n 75% {\n transform: translate3d(-10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n transform: translate3d(5px, 0, 0) scaleX(0.995);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInRight.css}\n */\nexport const bounceInRight = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0) scaleX(1);\n }\n\n 75% {\n transform: translate3d(10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n transform: translate3d(-5px, 0, 0) scaleX(0.995);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInUp.css}\n */\nexport const bounceInUp = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0) scaleY(5);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n 75% {\n transform: translate3d(0, 10px, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, -5px, 0) scaleY(0.985);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOut.css}\n */\nexport const bounceOut = keyframes`\n 20% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 50%,\n 55% {\n opacity: 1;\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutDown.css}\n */\nexport const bounceOutDown = keyframes`\n 20% {\n transform: translate3d(0, 10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0) scaleY(3);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutLeft.css}\n */\nexport const bounceOutLeft = keyframes`\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0) scaleX(2);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutRight.css}\n */\nexport const bounceOutRight = keyframes`\n 20% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0) scaleX(2);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutUp.css}\n */\nexport const bounceOutUp = keyframes`\n 20% {\n transform: translate3d(0, -10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0) scaleY(3);\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n fadeIn,\n fadeInBottomLeft,\n fadeInBottomRight,\n fadeInDown,\n fadeInDownBig,\n fadeInLeft,\n fadeInLeftBig,\n fadeInRight,\n fadeInRightBig,\n fadeInTopLeft,\n fadeInTopRight,\n fadeInUp,\n fadeInUpBig,\n} from \"../animations/fading_entrances\";\nimport {\n fadeOut,\n fadeOutBottomLeft,\n fadeOutBottomRight,\n fadeOutDown,\n fadeOutDownBig,\n fadeOutLeft,\n fadeOutLeftBig,\n fadeOutRight,\n fadeOutRightBig,\n fadeOutTopLeft,\n fadeOutTopRight,\n fadeOutUp,\n fadeOutUpBig,\n} from \"../animations/fading_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype FadeDirection =\n | \"bottom-left\"\n | \"bottom-right\"\n | \"down\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"up\";\n\nexport interface FadeProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Causes the animation to start farther. Only works with \"down\", \"left\", \"right\" and \"up\" directions.\n * @default false\n */\n big?: boolean;\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: FadeDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(big: boolean, reverse: boolean, direction?: FadeDirection) {\n switch (direction) {\n case \"bottom-left\":\n return reverse ? fadeOutBottomLeft : fadeInBottomLeft;\n case \"bottom-right\":\n return reverse ? fadeOutBottomRight : fadeInBottomRight;\n case \"down\":\n return big\n ? reverse\n ? fadeOutDownBig\n : fadeInDownBig\n : reverse\n ? fadeOutDown\n : fadeInDown;\n case \"left\":\n return big\n ? reverse\n ? fadeOutLeftBig\n : fadeInLeftBig\n : reverse\n ? fadeOutLeft\n : fadeInLeft;\n case \"right\":\n return big\n ? reverse\n ? fadeOutRightBig\n : fadeInRightBig\n : reverse\n ? fadeOutRight\n : fadeInRight;\n case \"top-left\":\n return reverse ? fadeOutTopLeft : fadeInTopLeft;\n case \"top-right\":\n return reverse ? fadeOutTopRight : fadeInTopRight;\n case \"up\":\n return big\n ? reverse\n ? fadeOutUpBig\n : fadeInUpBig\n : reverse\n ? fadeOutUp\n : fadeInUp;\n default:\n return reverse ? fadeOut : fadeIn;\n }\n}\n\nexport const Fade: React.FC<FadeProps> = (props) => {\n const { big = false, direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(big, reverse, direction),\n [big, direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOut.css}\n */\nexport const fadeOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutBottomLeft.css}\n */\nexport const fadeOutBottomLeft = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutBottomRight.css}\n */\nexport const fadeOutBottomRight = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutDown.css}\n */\nexport const fadeOutDown = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutDownBig.css}\n */\nexport const fadeOutDownBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutLeft.css}\n */\nexport const fadeOutLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutLeftBig.css}\n */\nexport const fadeOutLeftBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutRight.css}\n */\nexport const fadeOutRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutRightBig.css}\n */\nexport const fadeOutRightBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutTopLeft.css}\n */\nexport const fadeOutTopLeft = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutTopRight.css}\n */\nexport const fadeOutTopRight = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutUp.css}\n */\nexport const fadeOutUp = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutUpBig.css}\n */\nexport const fadeOutUpBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n`;\n","import { type CSSProperties, useMemo } from \"react\";\n\nimport {\n flip,\n flipInX,\n flipInY,\n flipOutX,\n flipOutY,\n} from \"../animations/flippers\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype FlipDirection = \"horizontal\" | \"vertical\";\n\nexport interface FlipProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Axis direction of the animation.\n * @default undefined\n */\n direction?: FlipDirection;\n /**\n * Specifies if the animation should make element(s) disappear. It only has effect if a direction is specified.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: FlipDirection) {\n switch (direction) {\n case \"horizontal\":\n return reverse ? flipOutX : flipInX;\n case \"vertical\":\n return reverse ? flipOutY : flipInY;\n default:\n return flip;\n }\n}\n\nconst animationCss: CSSProperties = {\n backfaceVisibility: \"visible\",\n};\n\nexport const Flip: React.FC<FlipProps> = (props) => {\n const { direction, reverse = false, style, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flip.css}\n */\nexport const flip = keyframes`\n from {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n animation-timing-function: ease-out;\n }\n\n 40% {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n animation-timing-function: ease-out;\n }\n\n 50% {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n animation-timing-function: ease-in;\n }\n\n 80% {\n transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n animation-timing-function: ease-in;\n }\n\n to {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n animation-timing-function: ease-in;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipInX.css}\n */\nexport const flipInX = keyframes`\n from {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n animation-timing-function: ease-in;\n }\n\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n to {\n transform: perspective(400px);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipInY.css}\n */\nexport const flipInY = keyframes`\n from {\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n animation-timing-function: ease-in;\n }\n\n 60% {\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n to {\n transform: perspective(400px);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipOutX.css}\n */\nexport const flipOutX = keyframes`\n from {\n transform: perspective(400px);\n }\n\n 30% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n to {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipOutY.css}\n */\nexport const flipOutY = keyframes`\n from {\n transform: perspective(400px);\n }\n\n 30% {\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n to {\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/hinge.css}\n */\nexport const hinge = keyframes`\n 0% {\n animation-timing-function: ease-in-out;\n }\n\n 20%,\n 60% {\n transform: rotate3d(0, 0, 1, 80deg);\n animation-timing-function: ease-in-out;\n }\n\n 40%,\n 80% {\n transform: rotate3d(0, 0, 1, 60deg);\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n to {\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/jackInTheBox.css}\n */\nexport const jackInTheBox = keyframes`\n from {\n opacity: 0;\n transform: scale(0.1) rotate(30deg);\n transform-origin: center bottom;\n }\n\n 50% {\n transform: rotate(-10deg);\n }\n\n 70% {\n transform: rotate(3deg);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/rollIn.css}\n */\nexport const rollIn = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/rollOut.css}\n */\nexport const rollOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n`;\n","import type { CSSProperties } from \"react\";\n\nimport { hinge } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport type HingeProps = Omit<RevealProps, \"keyframes\">;\n\nconst animationCss: CSSProperties = {\n transformOrigin: \"top left\",\n};\n\nexport const Hinge: React.FC<HingeProps> = (props) => {\n const { style, ...rest } = props;\n\n return (\n <Reveal\n keyframes={hinge}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { jackInTheBox } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport type JackInTheBoxProps = Omit<RevealProps, \"keyframes\">;\n\nexport const JackInTheBox: React.FC<JackInTheBoxProps> = (props) => {\n return <Reveal keyframes={jackInTheBox} {...props} />;\n};\n","import { useMemo } from \"react\";\n\nimport { rollIn, rollOut } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport interface RollProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean) {\n return reverse ? rollOut : rollIn;\n}\n\nexport const Roll: React.FC<RollProps> = (props) => {\n const { reverse = false, ...rest } = props;\n\n const keyframes = useMemo(() => getStyles(reverse), [reverse]);\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import type { Keyframes } from \"@emotion/serialize\";\nimport { type CSSProperties, useMemo } from \"react\";\n\nimport {\n rotateIn,\n rotateInDownLeft,\n rotateInDownRight,\n rotateInUpLeft,\n rotateInUpRight,\n} from \"../animations/rotating_entrances\";\nimport {\n rotateOut,\n rotateOutDownLeft,\n rotateOutDownRight,\n rotateOutUpLeft,\n rotateOutUpRight,\n} from \"../animations/rotating_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype RotateDirection =\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-left\"\n | \"top-right\";\n\nexport interface RotateProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: RotateDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(\n reverse: boolean,\n direction?: RotateDirection\n): [Keyframes, CSSProperties?] {\n switch (direction) {\n case \"bottom-left\":\n return reverse\n ? [rotateOutDownLeft, { transformOrigin: \"left bottom\" }]\n : [rotateInDownLeft, { transformOrigin: \"left bottom\" }];\n case \"bottom-right\":\n return reverse\n ? [rotateOutDownRight, { transformOrigin: \"right bottom\" }]\n : [rotateInDownRight, { transformOrigin: \"right bottom\" }];\n case \"top-left\":\n return reverse\n ? [rotateOutUpLeft, { transformOrigin: \"left bottom\" }]\n : [rotateInUpLeft, { transformOrigin: \"left bottom\" }];\n case \"top-right\":\n return reverse\n ? [rotateOutUpRight, { transformOrigin: \"right bottom\" }]\n : [rotateInUpRight, { transformOrigin: \"right bottom\" }];\n default:\n return reverse\n ? [rotateOut, { transformOrigin: \"center\" }]\n : [rotateIn, { transformOrigin: \"center\" }];\n }\n}\n\nexport const Rotate: React.FC<RotateProps> = (props) => {\n const { direction, reverse = false, style, ...rest } = props;\n\n const [keyframes, animationCss] = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateIn.css}\n */\nexport const rotateIn = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInDownLeft.css}\n */\nexport const rotateInDownLeft = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInDownRight.css}\n */\nexport const rotateInDownRight = keyframes`\n from {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInUpLeft.css}\n */\nexport const rotateInUpLeft = keyframes`\n from {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInUpRight.css}\n */\nexport const rotateInUpRight = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOut.css}\n */\nexport const rotateOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutDownLeft.css}\n */\nexport const rotateOutDownLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutDownRight.css}\n */\nexport const rotateOutDownRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutUpLeft.css}\n */\nexport const rotateOutUpLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutUpRight.css}\n */\nexport const rotateOutUpRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n slideInDown,\n slideInLeft,\n slideInRight,\n slideInUp,\n} from \"../animations/sliding_entrances\";\nimport {\n slideOutDown,\n slideOutLeft,\n slideOutRight,\n slideOutUp,\n} from \"../animations/sliding_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype SlideDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface SlideProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: SlideDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: SlideDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? slideOutDown : slideInDown;\n case \"right\":\n return reverse ? slideOutRight : slideInRight;\n case \"up\":\n return reverse ? slideOutUp : slideInUp;\n case \"left\":\n default:\n return reverse ? slideOutLeft : slideInLeft;\n }\n}\n\nexport const Slide: React.FC<SlideProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInDown.css}\n */\nexport const slideInDown = keyframes`\n from {\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInLeft.css}\n */\nexport const slideInLeft = keyframes`\n from {\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInRight.css}\n */\nexport const slideInRight = keyframes`\n from {\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInUp.css}\n */\nexport const slideInUp = keyframes`\n from {\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutDown.css}\n */\nexport const slideOutDown = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(0, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutLeft.css}\n */\nexport const slideOutLeft = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(-100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutRight.css}\n */\nexport const slideOutRight = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutUp.css}\n */\nexport const slideOutUp = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(0, -100%, 0);\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n zoomIn,\n zoomInDown,\n zoomInLeft,\n zoomInRight,\n zoomInUp,\n} from \"../animations/zooming_entrances\";\nimport {\n zoomOut,\n zoomOutDown,\n zoomOutLeft,\n zoomOutRight,\n zoomOutUp,\n} from \"../animations/zooming_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype ZoomDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface ZoomProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: ZoomDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: ZoomDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? zoomOutDown : zoomInDown;\n case \"left\":\n return reverse ? zoomOutLeft : zoomInLeft;\n case \"right\":\n return reverse ? zoomOutRight : zoomInRight;\n case \"up\":\n return reverse ? zoomOutUp : zoomInUp;\n default:\n return reverse ? zoomOut : zoomIn;\n }\n}\n\nexport const Zoom: React.FC<ZoomProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomIn.css}\n */\nexport const zoomIn = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 50% {\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInDown.css}\n */\nexport const zoomInDown = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInLeft.css}\n */\nexport const zoomInLeft = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInRight.css}\n */\nexport const zoomInRight = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInUp.css}\n */\nexport const zoomInUp = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOut.css}\n */\nexport const zoomOut = keyframes`\n from {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n to {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutDown.css}\n */\nexport const zoomOutDown = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutLeft.css}\n */\nexport const zoomOutLeft = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: scale(0.1) translate3d(-2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutRight.css}\n */\nexport const zoomOutRight = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: scale(0.1) translate3d(2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutUp.css}\n */\nexport const zoomOutUp = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n"],"mappings":"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","names":["import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","keyframes","keyframes","import_jsx_runtime","keyframes","animationCss","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_jsx_runtime","animationCss","import_jsx_runtime","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","animationCss","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/AttentionSeeker.tsx","../src/animations/attention_seekers/bounce.ts","../src/animations/attention_seekers/flash.ts","../src/animations/attention_seekers/headShake.ts","../src/animations/attention_seekers/heartBeat.ts","../src/animations/attention_seekers/jello.ts","../src/animations/attention_seekers/pulse.ts","../src/animations/attention_seekers/rubberBand.ts","../src/animations/attention_seekers/shake.ts","../src/animations/attention_seekers/shakeX.ts","../src/animations/attention_seekers/shakeY.ts","../src/animations/attention_seekers/swing.ts","../src/animations/attention_seekers/tada.ts","../src/animations/attention_seekers/wobble.ts","../src/Reveal.tsx","../src/animations/fading_entrances/fadeIn.ts","../src/animations/fading_entrances/fadeInBottomLeft.ts","../src/animations/fading_entrances/fadeInBottomRight.ts","../src/animations/fading_entrances/fadeInDown.ts","../src/animations/fading_entrances/fadeInDownBig.ts","../src/animations/fading_entrances/fadeInLeft.ts","../src/animations/fading_entrances/fadeInLeftBig.ts","../src/animations/fading_entrances/fadeInRight.ts","../src/animations/fading_entrances/fadeInRightBig.ts","../src/animations/fading_entrances/fadeInTopLeft.ts","../src/animations/fading_entrances/fadeInTopRight.ts","../src/animations/fading_entrances/fadeInUp.ts","../src/animations/fading_entrances/fadeInUpBig.ts","../src/utils/animations.ts","../src/utils/guards.ts","../src/utils/patterns.ts","../src/components/Bounce.tsx","../src/animations/bouncing_entrances/bounceIn.ts","../src/animations/bouncing_entrances/bounceInDown.ts","../src/animations/bouncing_entrances/bounceInLeft.ts","../src/animations/bouncing_entrances/bounceInRight.ts","../src/animations/bouncing_entrances/bounceInUp.ts","../src/animations/bouncing_exits/bounceOut.ts","../src/animations/bouncing_exits/bounceOutDown.ts","../src/animations/bouncing_exits/bounceOutLeft.ts","../src/animations/bouncing_exits/bounceOutRight.ts","../src/animations/bouncing_exits/bounceOutUp.ts","../src/components/Fade.tsx","../src/animations/fading_exits/fadeOut.ts","../src/animations/fading_exits/fadeOutBottomLeft.ts","../src/animations/fading_exits/fadeOutBottomRight.ts","../src/animations/fading_exits/fadeOutDown.ts","../src/animations/fading_exits/fadeOutDownBig.ts","../src/animations/fading_exits/fadeOutLeft.ts","../src/animations/fading_exits/fadeOutLeftBig.ts","../src/animations/fading_exits/fadeOutRight.ts","../src/animations/fading_exits/fadeOutRightBig.ts","../src/animations/fading_exits/fadeOutTopLeft.ts","../src/animations/fading_exits/fadeOutTopRight.ts","../src/animations/fading_exits/fadeOutUp.ts","../src/animations/fading_exits/fadeOutUpBig.ts","../src/components/Flip.tsx","../src/animations/flippers/flip.ts","../src/animations/flippers/flipInX.ts","../src/animations/flippers/flipInY.ts","../src/animations/flippers/flipOutX.ts","../src/animations/flippers/flipOutY.ts","../src/animations/specials/hinge.ts","../src/animations/specials/jackInTheBox.ts","../src/animations/specials/rollIn.ts","../src/animations/specials/rollOut.ts","../src/components/Hinge.tsx","../src/components/JackInTheBox.tsx","../src/components/Roll.tsx","../src/components/Rotate.tsx","../src/animations/rotating_entrances/rotateIn.ts","../src/animations/rotating_entrances/rotateInDownLeft.ts","../src/animations/rotating_entrances/rotateInDownRight.ts","../src/animations/rotating_entrances/rotateInUpLeft.ts","../src/animations/rotating_entrances/rotateInUpRight.ts","../src/animations/rotating_exits/rotateOut.ts","../src/animations/rotating_exits/rotateOutDownLeft.ts","../src/animations/rotating_exits/rotateOutDownRight.ts","../src/animations/rotating_exits/rotateOutUpLeft.ts","../src/animations/rotating_exits/rotateOutUpRight.ts","../src/components/Slide.tsx","../src/animations/sliding_entrances/slideInDown.ts","../src/animations/sliding_entrances/slideInLeft.ts","../src/animations/sliding_entrances/slideInRight.ts","../src/animations/sliding_entrances/slideInUp.ts","../src/animations/sliding_exits/slideOutDown.ts","../src/animations/sliding_exits/slideOutLeft.ts","../src/animations/sliding_exits/slideOutRight.ts","../src/animations/sliding_exits/slideOutUp.ts","../src/components/Zoom.tsx","../src/animations/zooming_entrances/zoomIn.ts","../src/animations/zooming_entrances/zoomInDown.ts","../src/animations/zooming_entrances/zoomInLeft.ts","../src/animations/zooming_entrances/zoomInRight.ts","../src/animations/zooming_entrances/zoomInUp.ts","../src/animations/zooming_exits/zoomOut.ts","../src/animations/zooming_exits/zoomOutDown.ts","../src/animations/zooming_exits/zoomOutLeft.ts","../src/animations/zooming_exits/zoomOutRight.ts","../src/animations/zooming_exits/zoomOutUp.ts"],"sourcesContent":["export * from \"./components\";\nexport * from \"./Reveal\";\nexport { Reveal as default } from \"./Reveal\";\n","import type { Keyframes } from \"@emotion/serialize\";\nimport { type CSSProperties, useMemo } from \"react\";\n\nimport {\n bounce,\n flash,\n headShake,\n heartBeat,\n jello,\n pulse,\n rubberBand,\n shake,\n shakeX,\n shakeY,\n swing,\n tada,\n wobble,\n} from \"../animations/attention_seekers\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype AttentionSeekerEffect =\n | \"bounce\"\n | \"flash\"\n | \"headShake\"\n | \"heartBeat\"\n | \"jello\"\n | \"pulse\"\n | \"rubberBand\"\n | \"shake\"\n | \"shakeX\"\n | \"shakeY\"\n | \"swing\"\n | \"tada\"\n | \"wobble\";\n\nexport interface AttentionSeekerProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * The animation effect to use for this attention seeker.\n * @default \"bounce\"\n */\n effect?: AttentionSeekerEffect;\n}\n\nfunction getStyles(effect: AttentionSeekerEffect): [Keyframes, CSSProperties?] {\n switch (effect) {\n case \"bounce\":\n return [bounce, { transformOrigin: \"center bottom\" }];\n case \"flash\":\n return [flash];\n case \"headShake\":\n return [headShake, { animationTimingFunction: \"ease-in-out\" }];\n case \"heartBeat\":\n return [heartBeat, { animationTimingFunction: \"ease-in-out\" }];\n case \"jello\":\n return [jello, { transformOrigin: \"center\" }];\n case \"pulse\":\n return [pulse, { animationTimingFunction: \"ease-in-out\" }];\n case \"rubberBand\":\n return [rubberBand];\n case \"shake\":\n return [shake];\n case \"shakeX\":\n return [shakeX];\n case \"shakeY\":\n return [shakeY];\n case \"swing\":\n return [swing, { transformOrigin: \"top center\" }];\n case \"tada\":\n return [tada];\n case \"wobble\":\n return [wobble];\n }\n}\n\nexport const AttentionSeeker: React.FC<AttentionSeekerProps> = (props) => {\n const { effect = \"bounce\", style, ...rest } = props;\n\n const [keyframes, animationCss] = useMemo(() => getStyles(effect), [effect]);\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/bounce.css}\n */\nexport const bounce = keyframes`\n from,\n 20%,\n 53%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: translate3d(0, 0, 0);\n }\n\n 40%,\n 43% {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transform: translate3d(0, -30px, 0) scaleY(1.1);\n }\n\n 70% {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transform: translate3d(0, -15px, 0) scaleY(1.05);\n }\n\n 80% {\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: translate3d(0, 0, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, -4px, 0) scaleY(1.02);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/flash.css}\n */\nexport const flash = keyframes`\n from,\n 50%,\n to {\n opacity: 1;\n }\n\n 25%,\n 75% {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/headShake.css}\n */\nexport const headShake = keyframes`\n 0% {\n transform: translateX(0);\n }\n\n 6.5% {\n transform: translateX(-6px) rotateY(-9deg);\n }\n\n 18.5% {\n transform: translateX(5px) rotateY(7deg);\n }\n\n 31.5% {\n transform: translateX(-3px) rotateY(-5deg);\n }\n\n 43.5% {\n transform: translateX(2px) rotateY(3deg);\n }\n\n 50% {\n transform: translateX(0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/heartBeat.css}\n */\nexport const heartBeat = keyframes`\n 0% {\n transform: scale(1);\n }\n\n 14% {\n transform: scale(1.3);\n }\n\n 28% {\n transform: scale(1);\n }\n\n 42% {\n transform: scale(1.3);\n }\n\n 70% {\n transform: scale(1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/jello.css}\n */\nexport const jello = keyframes`\n from,\n 11.1%,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 22.2% {\n transform: skewX(-12.5deg) skewY(-12.5deg);\n }\n\n 33.3% {\n transform: skewX(6.25deg) skewY(6.25deg);\n }\n\n 44.4% {\n transform: skewX(-3.125deg) skewY(-3.125deg);\n }\n\n 55.5% {\n transform: skewX(1.5625deg) skewY(1.5625deg);\n }\n\n 66.6% {\n transform: skewX(-0.78125deg) skewY(-0.78125deg);\n }\n\n 77.7% {\n transform: skewX(0.390625deg) skewY(0.390625deg);\n }\n\n 88.8% {\n transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/pulse.css}\n */\nexport const pulse = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/rubberBand.css}\n */\nexport const rubberBand = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n transform: scale3d(0.95, 1.05, 1);\n }\n\n 75% {\n transform: scale3d(1.05, 0.95, 1);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shake.css}\n */\nexport const shake = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(10px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shakeX.css}\n */\nexport const shakeX = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(10px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shakeY.css}\n */\nexport const shakeY = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(0, -10px, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(0, 10px, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/swing.css}\n */\nexport const swing = keyframes`\n 20% {\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n to {\n transform: rotate3d(0, 0, 1, 0deg);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/tada.css}\n */\nexport const tada = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 10%,\n 20% {\n transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%,\n 50%,\n 70%,\n 90% {\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%,\n 60%,\n 80% {\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/wobble.css}\n */\nexport const wobble = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { ClassNames } from \"@emotion/react\";\nimport type { Keyframes, SerializedStyles } from \"@emotion/serialize\";\nimport { type CSSProperties, Children, isValidElement, useMemo } from \"react\";\nimport { InView, useInView } from \"react-intersection-observer\";\nimport { isFragment } from \"react-is\";\n\nimport { fadeInLeft } from \"./animations/fading_entrances\";\nimport { getAnimationCss } from \"./utils/animations\";\nimport { isNullable, isStringLike } from \"./utils/guards\";\nimport { matchIf, matchIfOrNull } from \"./utils/patterns\";\n\nfunction hideWhen(condition: boolean) {\n return matchIfOrNull<CSSProperties>(() => ({ opacity: 0 }))(condition);\n}\n\nexport interface RevealProps {\n /**\n * Stagger its children animations.\n * @default false\n */\n cascade?: boolean;\n /**\n * Factor that affects the delay that each animated element in a cascade animation will be assigned.\n * @default 0.5\n */\n damping?: number;\n /**\n * Initial delay, in milliseconds.\n * @default 0\n */\n delay?: number;\n /**\n * Animation duration, in milliseconds.\n * @default 1000\n */\n duration?: number;\n /**\n * Float number between 0 and 1 indicating how much the element should be in viewport before the animation is triggered.\n * @default 0\n */\n fraction?: number;\n /**\n * Custom Emotion animation keyframes.\n */\n keyframes?: Keyframes;\n /**\n * Specifies if the animation should run only once or everytime the element enters/exits/re-enters the viewport.\n * @default false\n */\n triggerOnce?: boolean;\n /**\n * Class names to add to the container element.\n */\n className?: string;\n /**\n * Inline styles to add to the container element.\n */\n style?: React.CSSProperties;\n /**\n * Class names to add to the child element.\n */\n childClassName?: string;\n /**\n * Inline styles to add to the child element.\n */\n childStyle?: React.CSSProperties;\n /**\n * From React 18, children must be explicitly typed.\n * @see https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-typescript-definitions\n */\n children?: React.ReactNode;\n /**\n * Callback executed when the element enters or leaves the viewport.\n * If more than one element is being animated, this function is called\n * on each element.\n *\n * @param inView The current visibility flag.\n * @param entry The current IntersectionObserverEntry.\n */\n onVisibilityChange?(inView: boolean, entry: IntersectionObserverEntry): void;\n}\n\nexport const Reveal: React.FC<RevealProps> = (props) => {\n const {\n cascade = false,\n damping = 0.5,\n delay = 0,\n duration = 1000,\n fraction = 0,\n keyframes = fadeInLeft,\n triggerOnce = false,\n className,\n style,\n childClassName,\n childStyle,\n children,\n onVisibilityChange,\n } = props;\n\n const animationStyles = useMemo(\n () =>\n getAnimationCss({\n keyframes,\n duration,\n }),\n [duration, keyframes]\n );\n\n if (isNullable(children)) return null;\n\n if (isStringLike(children))\n return (\n <TextReveal {...props} animationStyles={animationStyles}>\n {String(children)}\n </TextReveal>\n );\n\n if (isFragment(children))\n return <FragmentReveal {...props} animationStyles={animationStyles} />;\n\n return (\n <>\n {Children.map(children, (node, index) => {\n if (!isValidElement(node)) return null;\n\n const nodeDelay = delay + (cascade ? index * duration * damping : 0);\n\n switch (node.type) {\n case \"ol\":\n case \"ul\":\n return (\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n className={cx(className, node.props.className)}\n style={Object.assign({}, style, node.props.style)}\n >\n <Reveal {...props}>{node.props.children}</Reveal>\n </node.type>\n )}\n </ClassNames>\n );\n case \"li\":\n return (\n <InView\n threshold={fraction}\n triggerOnce={triggerOnce}\n onChange={onVisibilityChange}\n >\n {({ inView, ref }) => (\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n ref={ref}\n className={cx(childClassName, node.props.className)}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign(\n {},\n childStyle,\n node.props.style,\n hideWhen(!inView),\n { animationDelay: nodeDelay + \"ms\" }\n )}\n />\n )}\n </ClassNames>\n )}\n </InView>\n );\n default:\n return (\n <InView\n threshold={fraction}\n triggerOnce={triggerOnce}\n onChange={onVisibilityChange}\n >\n {({ inView, ref }) => (\n <div\n ref={ref}\n className={className}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, style, {\n animationDelay: nodeDelay + \"ms\",\n })}\n >\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n className={cx(childClassName, node.props.className)}\n style={Object.assign(\n {},\n childStyle,\n node.props.style\n )}\n />\n )}\n </ClassNames>\n </div>\n )}\n </InView>\n );\n }\n })}\n </>\n );\n};\n\nconst textBaseStyles: CSSProperties = {\n display: \"inline-block\",\n whiteSpace: \"pre\",\n};\n\nconst TextReveal: React.FC<\n RevealProps & { animationStyles: SerializedStyles; children: string }\n> = (props) => {\n const {\n animationStyles,\n cascade = false,\n damping = 0.5,\n delay = 0,\n duration = 1000,\n fraction = 0,\n triggerOnce = false,\n className,\n style,\n children,\n onVisibilityChange,\n } = props;\n\n const { ref, inView } = useInView({\n triggerOnce,\n threshold: fraction,\n onChange: onVisibilityChange,\n });\n\n return matchIf(\n () => (\n <div\n ref={ref}\n className={className}\n style={Object.assign({}, style, textBaseStyles)}\n >\n {children.split(\"\").map((char, index) => (\n <span\n key={index}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, hideWhen(!inView), {\n animationDelay: delay + index * duration * damping + \"ms\",\n })}\n >\n {char}\n </span>\n ))}\n </div>\n ),\n () => <FragmentReveal {...props}>{children}</FragmentReveal>\n )(cascade);\n};\n\nconst FragmentReveal: React.FC<\n RevealProps & { animationStyles: SerializedStyles }\n> = (props) => {\n const {\n animationStyles,\n fraction = 0,\n triggerOnce = false,\n className,\n style,\n children,\n onVisibilityChange,\n } = props;\n\n const { ref, inView } = useInView({\n triggerOnce,\n threshold: fraction,\n onChange: onVisibilityChange,\n });\n\n return (\n <div\n ref={ref}\n className={className}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, style, hideWhen(!inView))}\n >\n {children}\n </div>\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeIn.css}\n */\nexport const fadeIn = keyframes`\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInBottomLeft.css}\n */\nexport const fadeInBottomLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInBottomRight.css}\n */\nexport const fadeInBottomRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInDown.css}\n */\nexport const fadeInDown = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInDownBig.css}\n */\nexport const fadeInDownBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInLeft.css}\n */\nexport const fadeInLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInLeftBig.css}\n */\nexport const fadeInLeftBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInRight.css}\n */\nexport const fadeInRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInRightBig.css}\n */\nexport const fadeInRightBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInTopLeft.css}\n */\nexport const fadeInTopLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInTopRight.css}\n */\nexport const fadeInTopRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInUp.css}\n */\nexport const fadeInUp = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInUpBig.css}\n */\nexport const fadeInUpBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { css } from \"@emotion/react\";\n\nimport { fadeInLeft } from \"../animations/fading_entrances\";\n\nexport function getAnimationCss({\n duration = 1000,\n delay = 0,\n timingFunction = \"ease\",\n keyframes = fadeInLeft,\n iterationCount = 1,\n}) {\n return css`\n animation-duration: ${duration}ms;\n animation-timing-function: ${timingFunction};\n animation-delay: ${delay}ms;\n animation-name: ${keyframes};\n animation-direction: normal;\n animation-fill-mode: both;\n animation-iteration-count: ${iterationCount};\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n `;\n}\n","export function isNullable(a: unknown): a is null | undefined {\n return a == undefined;\n}\n\nexport function isStringLike(\n value: unknown\n): value is string | number | boolean {\n return (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n}\n","export function matchIf<T, F>(onTrue: () => T, onFalse: () => F) {\n return (condition: boolean) => (condition ? onTrue() : onFalse());\n}\n\nexport function matchIfOrNull<T>(onTrue: () => T) {\n return matchIf(onTrue, () => null);\n}\n","import { useMemo } from \"react\";\n\nimport {\n bounceIn,\n bounceInDown,\n bounceInLeft,\n bounceInRight,\n bounceInUp,\n} from \"../animations/bouncing_entrances\";\nimport {\n bounceOut,\n bounceOutDown,\n bounceOutLeft,\n bounceOutRight,\n bounceOutUp,\n} from \"../animations/bouncing_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype BounceDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface BounceProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: BounceDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: BounceDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? bounceOutDown : bounceInDown;\n case \"left\":\n return reverse ? bounceOutLeft : bounceInLeft;\n case \"right\":\n return reverse ? bounceOutRight : bounceInRight;\n case \"up\":\n return reverse ? bounceOutUp : bounceInUp;\n default:\n return reverse ? bounceOut : bounceIn;\n }\n}\n\nexport const Bounce: React.FC<BounceProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceIn.css}\n */\nexport const bounceIn = keyframes`\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 20% {\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n transform: scale3d(0.97, 0.97, 0.97);\n }\n\n to {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInDown.css}\n */\nexport const bounceInDown = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0) scaleY(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0) scaleY(0.9);\n }\n\n 75% {\n transform: translate3d(0, -10px, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, 5px, 0) scaleY(0.985);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInLeft.css}\n */\nexport const bounceInLeft = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0) scaleX(1);\n }\n\n 75% {\n transform: translate3d(-10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n transform: translate3d(5px, 0, 0) scaleX(0.995);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInRight.css}\n */\nexport const bounceInRight = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0) scaleX(1);\n }\n\n 75% {\n transform: translate3d(10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n transform: translate3d(-5px, 0, 0) scaleX(0.995);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInUp.css}\n */\nexport const bounceInUp = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0) scaleY(5);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n 75% {\n transform: translate3d(0, 10px, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, -5px, 0) scaleY(0.985);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOut.css}\n */\nexport const bounceOut = keyframes`\n 20% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 50%,\n 55% {\n opacity: 1;\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutDown.css}\n */\nexport const bounceOutDown = keyframes`\n 20% {\n transform: translate3d(0, 10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0) scaleY(3);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutLeft.css}\n */\nexport const bounceOutLeft = keyframes`\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0) scaleX(2);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutRight.css}\n */\nexport const bounceOutRight = keyframes`\n 20% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0) scaleX(2);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutUp.css}\n */\nexport const bounceOutUp = keyframes`\n 20% {\n transform: translate3d(0, -10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0) scaleY(3);\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n fadeIn,\n fadeInBottomLeft,\n fadeInBottomRight,\n fadeInDown,\n fadeInDownBig,\n fadeInLeft,\n fadeInLeftBig,\n fadeInRight,\n fadeInRightBig,\n fadeInTopLeft,\n fadeInTopRight,\n fadeInUp,\n fadeInUpBig,\n} from \"../animations/fading_entrances\";\nimport {\n fadeOut,\n fadeOutBottomLeft,\n fadeOutBottomRight,\n fadeOutDown,\n fadeOutDownBig,\n fadeOutLeft,\n fadeOutLeftBig,\n fadeOutRight,\n fadeOutRightBig,\n fadeOutTopLeft,\n fadeOutTopRight,\n fadeOutUp,\n fadeOutUpBig,\n} from \"../animations/fading_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype FadeDirection =\n | \"bottom-left\"\n | \"bottom-right\"\n | \"down\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"up\";\n\nexport interface FadeProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Causes the animation to start farther. Only works with \"down\", \"left\", \"right\" and \"up\" directions.\n * @default false\n */\n big?: boolean;\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: FadeDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(big: boolean, reverse: boolean, direction?: FadeDirection) {\n switch (direction) {\n case \"bottom-left\":\n return reverse ? fadeOutBottomLeft : fadeInBottomLeft;\n case \"bottom-right\":\n return reverse ? fadeOutBottomRight : fadeInBottomRight;\n case \"down\":\n return big\n ? reverse\n ? fadeOutDownBig\n : fadeInDownBig\n : reverse\n ? fadeOutDown\n : fadeInDown;\n case \"left\":\n return big\n ? reverse\n ? fadeOutLeftBig\n : fadeInLeftBig\n : reverse\n ? fadeOutLeft\n : fadeInLeft;\n case \"right\":\n return big\n ? reverse\n ? fadeOutRightBig\n : fadeInRightBig\n : reverse\n ? fadeOutRight\n : fadeInRight;\n case \"top-left\":\n return reverse ? fadeOutTopLeft : fadeInTopLeft;\n case \"top-right\":\n return reverse ? fadeOutTopRight : fadeInTopRight;\n case \"up\":\n return big\n ? reverse\n ? fadeOutUpBig\n : fadeInUpBig\n : reverse\n ? fadeOutUp\n : fadeInUp;\n default:\n return reverse ? fadeOut : fadeIn;\n }\n}\n\nexport const Fade: React.FC<FadeProps> = (props) => {\n const { big = false, direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(big, reverse, direction),\n [big, direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOut.css}\n */\nexport const fadeOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutBottomLeft.css}\n */\nexport const fadeOutBottomLeft = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutBottomRight.css}\n */\nexport const fadeOutBottomRight = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutDown.css}\n */\nexport const fadeOutDown = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutDownBig.css}\n */\nexport const fadeOutDownBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutLeft.css}\n */\nexport const fadeOutLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutLeftBig.css}\n */\nexport const fadeOutLeftBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutRight.css}\n */\nexport const fadeOutRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutRightBig.css}\n */\nexport const fadeOutRightBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutTopLeft.css}\n */\nexport const fadeOutTopLeft = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutTopRight.css}\n */\nexport const fadeOutTopRight = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutUp.css}\n */\nexport const fadeOutUp = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutUpBig.css}\n */\nexport const fadeOutUpBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n`;\n","import { type CSSProperties, useMemo } from \"react\";\n\nimport {\n flip,\n flipInX,\n flipInY,\n flipOutX,\n flipOutY,\n} from \"../animations/flippers\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype FlipDirection = \"horizontal\" | \"vertical\";\n\nexport interface FlipProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Axis direction of the animation.\n * @default undefined\n */\n direction?: FlipDirection;\n /**\n * Specifies if the animation should make element(s) disappear. It only has effect if a direction is specified.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: FlipDirection) {\n switch (direction) {\n case \"horizontal\":\n return reverse ? flipOutX : flipInX;\n case \"vertical\":\n return reverse ? flipOutY : flipInY;\n default:\n return flip;\n }\n}\n\nconst animationCss: CSSProperties = {\n backfaceVisibility: \"visible\",\n};\n\nexport const Flip: React.FC<FlipProps> = (props) => {\n const { direction, reverse = false, style, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flip.css}\n */\nexport const flip = keyframes`\n from {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n animation-timing-function: ease-out;\n }\n\n 40% {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n animation-timing-function: ease-out;\n }\n\n 50% {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n animation-timing-function: ease-in;\n }\n\n 80% {\n transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n animation-timing-function: ease-in;\n }\n\n to {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n animation-timing-function: ease-in;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipInX.css}\n */\nexport const flipInX = keyframes`\n from {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n animation-timing-function: ease-in;\n }\n\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n to {\n transform: perspective(400px);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipInY.css}\n */\nexport const flipInY = keyframes`\n from {\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n animation-timing-function: ease-in;\n }\n\n 60% {\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n to {\n transform: perspective(400px);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipOutX.css}\n */\nexport const flipOutX = keyframes`\n from {\n transform: perspective(400px);\n }\n\n 30% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n to {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipOutY.css}\n */\nexport const flipOutY = keyframes`\n from {\n transform: perspective(400px);\n }\n\n 30% {\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n to {\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/hinge.css}\n */\nexport const hinge = keyframes`\n 0% {\n animation-timing-function: ease-in-out;\n }\n\n 20%,\n 60% {\n transform: rotate3d(0, 0, 1, 80deg);\n animation-timing-function: ease-in-out;\n }\n\n 40%,\n 80% {\n transform: rotate3d(0, 0, 1, 60deg);\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n to {\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/jackInTheBox.css}\n */\nexport const jackInTheBox = keyframes`\n from {\n opacity: 0;\n transform: scale(0.1) rotate(30deg);\n transform-origin: center bottom;\n }\n\n 50% {\n transform: rotate(-10deg);\n }\n\n 70% {\n transform: rotate(3deg);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/rollIn.css}\n */\nexport const rollIn = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/rollOut.css}\n */\nexport const rollOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n`;\n","import type { CSSProperties } from \"react\";\n\nimport { hinge } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport type HingeProps = Omit<RevealProps, \"keyframes\">;\n\nconst animationCss: CSSProperties = {\n transformOrigin: \"top left\",\n};\n\nexport const Hinge: React.FC<HingeProps> = (props) => {\n const { style, ...rest } = props;\n\n return (\n <Reveal\n keyframes={hinge}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { jackInTheBox } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport type JackInTheBoxProps = Omit<RevealProps, \"keyframes\">;\n\nexport const JackInTheBox: React.FC<JackInTheBoxProps> = (props) => {\n return <Reveal keyframes={jackInTheBox} {...props} />;\n};\n","import { useMemo } from \"react\";\n\nimport { rollIn, rollOut } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport interface RollProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean) {\n return reverse ? rollOut : rollIn;\n}\n\nexport const Roll: React.FC<RollProps> = (props) => {\n const { reverse = false, ...rest } = props;\n\n const keyframes = useMemo(() => getStyles(reverse), [reverse]);\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import type { Keyframes } from \"@emotion/serialize\";\nimport { type CSSProperties, useMemo } from \"react\";\n\nimport {\n rotateIn,\n rotateInDownLeft,\n rotateInDownRight,\n rotateInUpLeft,\n rotateInUpRight,\n} from \"../animations/rotating_entrances\";\nimport {\n rotateOut,\n rotateOutDownLeft,\n rotateOutDownRight,\n rotateOutUpLeft,\n rotateOutUpRight,\n} from \"../animations/rotating_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype RotateDirection =\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-left\"\n | \"top-right\";\n\nexport interface RotateProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: RotateDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(\n reverse: boolean,\n direction?: RotateDirection\n): [Keyframes, CSSProperties?] {\n switch (direction) {\n case \"bottom-left\":\n return reverse\n ? [rotateOutDownLeft, { transformOrigin: \"left bottom\" }]\n : [rotateInDownLeft, { transformOrigin: \"left bottom\" }];\n case \"bottom-right\":\n return reverse\n ? [rotateOutDownRight, { transformOrigin: \"right bottom\" }]\n : [rotateInDownRight, { transformOrigin: \"right bottom\" }];\n case \"top-left\":\n return reverse\n ? [rotateOutUpLeft, { transformOrigin: \"left bottom\" }]\n : [rotateInUpLeft, { transformOrigin: \"left bottom\" }];\n case \"top-right\":\n return reverse\n ? [rotateOutUpRight, { transformOrigin: \"right bottom\" }]\n : [rotateInUpRight, { transformOrigin: \"right bottom\" }];\n default:\n return reverse\n ? [rotateOut, { transformOrigin: \"center\" }]\n : [rotateIn, { transformOrigin: \"center\" }];\n }\n}\n\nexport const Rotate: React.FC<RotateProps> = (props) => {\n const { direction, reverse = false, style, ...rest } = props;\n\n const [keyframes, animationCss] = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateIn.css}\n */\nexport const rotateIn = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInDownLeft.css}\n */\nexport const rotateInDownLeft = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInDownRight.css}\n */\nexport const rotateInDownRight = keyframes`\n from {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInUpLeft.css}\n */\nexport const rotateInUpLeft = keyframes`\n from {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInUpRight.css}\n */\nexport const rotateInUpRight = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOut.css}\n */\nexport const rotateOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutDownLeft.css}\n */\nexport const rotateOutDownLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutDownRight.css}\n */\nexport const rotateOutDownRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutUpLeft.css}\n */\nexport const rotateOutUpLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutUpRight.css}\n */\nexport const rotateOutUpRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n slideInDown,\n slideInLeft,\n slideInRight,\n slideInUp,\n} from \"../animations/sliding_entrances\";\nimport {\n slideOutDown,\n slideOutLeft,\n slideOutRight,\n slideOutUp,\n} from \"../animations/sliding_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype SlideDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface SlideProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: SlideDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: SlideDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? slideOutDown : slideInDown;\n case \"right\":\n return reverse ? slideOutRight : slideInRight;\n case \"up\":\n return reverse ? slideOutUp : slideInUp;\n case \"left\":\n default:\n return reverse ? slideOutLeft : slideInLeft;\n }\n}\n\nexport const Slide: React.FC<SlideProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInDown.css}\n */\nexport const slideInDown = keyframes`\n from {\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInLeft.css}\n */\nexport const slideInLeft = keyframes`\n from {\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInRight.css}\n */\nexport const slideInRight = keyframes`\n from {\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInUp.css}\n */\nexport const slideInUp = keyframes`\n from {\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutDown.css}\n */\nexport const slideOutDown = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(0, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutLeft.css}\n */\nexport const slideOutLeft = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(-100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutRight.css}\n */\nexport const slideOutRight = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutUp.css}\n */\nexport const slideOutUp = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(0, -100%, 0);\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n zoomIn,\n zoomInDown,\n zoomInLeft,\n zoomInRight,\n zoomInUp,\n} from \"../animations/zooming_entrances\";\nimport {\n zoomOut,\n zoomOutDown,\n zoomOutLeft,\n zoomOutRight,\n zoomOutUp,\n} from \"../animations/zooming_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype ZoomDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface ZoomProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: ZoomDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: ZoomDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? zoomOutDown : zoomInDown;\n case \"left\":\n return reverse ? zoomOutLeft : zoomInLeft;\n case \"right\":\n return reverse ? zoomOutRight : zoomInRight;\n case \"up\":\n return reverse ? zoomOutUp : zoomInUp;\n default:\n return reverse ? zoomOut : zoomIn;\n }\n}\n\nexport const Zoom: React.FC<ZoomProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomIn.css}\n */\nexport const zoomIn = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 50% {\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInDown.css}\n */\nexport const zoomInDown = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInLeft.css}\n */\nexport const zoomInLeft = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInRight.css}\n */\nexport const zoomInRight = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInUp.css}\n */\nexport const zoomInUp = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOut.css}\n */\nexport const zoomOut = keyframes`\n from {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n to {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutDown.css}\n */\nexport const zoomOutDown = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutLeft.css}\n */\nexport const zoomOutLeft = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: scale(0.1) translate3d(-2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutRight.css}\n */\nexport const zoomOutRight = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: scale(0.1) translate3d(2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutUp.css}\n */\nexport const zoomOutUp = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n"],"mappings":"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","names":["import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","keyframes","keyframes","import_jsx_runtime","keyframes","animationCss","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_jsx_runtime","animationCss","import_jsx_runtime","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","animationCss","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_jsx_runtime","getStyles","keyframes"]}
package/dist/index.mjs CHANGED
@@ -573,10 +573,7 @@ function matchIfOrNull(onTrue) {
573
573
  // src/Reveal.tsx
574
574
  import { Fragment, jsx } from "@emotion/react/jsx-runtime";
575
575
  function hideWhen(condition) {
576
- return matchIf(
577
- () => ({ opacity: 0 }),
578
- () => ({ opacity: 1 })
579
- )(condition);
576
+ return matchIfOrNull(() => ({ opacity: 0 }))(condition);
580
577
  }
581
578
  var Reveal = (props) => {
582
579
  const {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/AttentionSeeker.tsx","../src/animations/attention_seekers/bounce.ts","../src/animations/attention_seekers/flash.ts","../src/animations/attention_seekers/headShake.ts","../src/animations/attention_seekers/heartBeat.ts","../src/animations/attention_seekers/jello.ts","../src/animations/attention_seekers/pulse.ts","../src/animations/attention_seekers/rubberBand.ts","../src/animations/attention_seekers/shake.ts","../src/animations/attention_seekers/shakeX.ts","../src/animations/attention_seekers/shakeY.ts","../src/animations/attention_seekers/swing.ts","../src/animations/attention_seekers/tada.ts","../src/animations/attention_seekers/wobble.ts","../src/Reveal.tsx","../src/animations/fading_entrances/fadeIn.ts","../src/animations/fading_entrances/fadeInBottomLeft.ts","../src/animations/fading_entrances/fadeInBottomRight.ts","../src/animations/fading_entrances/fadeInDown.ts","../src/animations/fading_entrances/fadeInDownBig.ts","../src/animations/fading_entrances/fadeInLeft.ts","../src/animations/fading_entrances/fadeInLeftBig.ts","../src/animations/fading_entrances/fadeInRight.ts","../src/animations/fading_entrances/fadeInRightBig.ts","../src/animations/fading_entrances/fadeInTopLeft.ts","../src/animations/fading_entrances/fadeInTopRight.ts","../src/animations/fading_entrances/fadeInUp.ts","../src/animations/fading_entrances/fadeInUpBig.ts","../src/utils/animations.ts","../src/utils/guards.ts","../src/utils/patterns.ts","../src/components/Bounce.tsx","../src/animations/bouncing_entrances/bounceIn.ts","../src/animations/bouncing_entrances/bounceInDown.ts","../src/animations/bouncing_entrances/bounceInLeft.ts","../src/animations/bouncing_entrances/bounceInRight.ts","../src/animations/bouncing_entrances/bounceInUp.ts","../src/animations/bouncing_exits/bounceOut.ts","../src/animations/bouncing_exits/bounceOutDown.ts","../src/animations/bouncing_exits/bounceOutLeft.ts","../src/animations/bouncing_exits/bounceOutRight.ts","../src/animations/bouncing_exits/bounceOutUp.ts","../src/components/Fade.tsx","../src/animations/fading_exits/fadeOut.ts","../src/animations/fading_exits/fadeOutBottomLeft.ts","../src/animations/fading_exits/fadeOutBottomRight.ts","../src/animations/fading_exits/fadeOutDown.ts","../src/animations/fading_exits/fadeOutDownBig.ts","../src/animations/fading_exits/fadeOutLeft.ts","../src/animations/fading_exits/fadeOutLeftBig.ts","../src/animations/fading_exits/fadeOutRight.ts","../src/animations/fading_exits/fadeOutRightBig.ts","../src/animations/fading_exits/fadeOutTopLeft.ts","../src/animations/fading_exits/fadeOutTopRight.ts","../src/animations/fading_exits/fadeOutUp.ts","../src/animations/fading_exits/fadeOutUpBig.ts","../src/components/Flip.tsx","../src/animations/flippers/flip.ts","../src/animations/flippers/flipInX.ts","../src/animations/flippers/flipInY.ts","../src/animations/flippers/flipOutX.ts","../src/animations/flippers/flipOutY.ts","../src/animations/specials/hinge.ts","../src/animations/specials/jackInTheBox.ts","../src/animations/specials/rollIn.ts","../src/animations/specials/rollOut.ts","../src/components/Hinge.tsx","../src/components/JackInTheBox.tsx","../src/components/Roll.tsx","../src/components/Rotate.tsx","../src/animations/rotating_entrances/rotateIn.ts","../src/animations/rotating_entrances/rotateInDownLeft.ts","../src/animations/rotating_entrances/rotateInDownRight.ts","../src/animations/rotating_entrances/rotateInUpLeft.ts","../src/animations/rotating_entrances/rotateInUpRight.ts","../src/animations/rotating_exits/rotateOut.ts","../src/animations/rotating_exits/rotateOutDownLeft.ts","../src/animations/rotating_exits/rotateOutDownRight.ts","../src/animations/rotating_exits/rotateOutUpLeft.ts","../src/animations/rotating_exits/rotateOutUpRight.ts","../src/components/Slide.tsx","../src/animations/sliding_entrances/slideInDown.ts","../src/animations/sliding_entrances/slideInLeft.ts","../src/animations/sliding_entrances/slideInRight.ts","../src/animations/sliding_entrances/slideInUp.ts","../src/animations/sliding_exits/slideOutDown.ts","../src/animations/sliding_exits/slideOutLeft.ts","../src/animations/sliding_exits/slideOutRight.ts","../src/animations/sliding_exits/slideOutUp.ts","../src/components/Zoom.tsx","../src/animations/zooming_entrances/zoomIn.ts","../src/animations/zooming_entrances/zoomInDown.ts","../src/animations/zooming_entrances/zoomInLeft.ts","../src/animations/zooming_entrances/zoomInRight.ts","../src/animations/zooming_entrances/zoomInUp.ts","../src/animations/zooming_exits/zoomOut.ts","../src/animations/zooming_exits/zoomOutDown.ts","../src/animations/zooming_exits/zoomOutLeft.ts","../src/animations/zooming_exits/zoomOutRight.ts","../src/animations/zooming_exits/zoomOutUp.ts"],"sourcesContent":["import type { Keyframes } from \"@emotion/serialize\";\nimport { type CSSProperties, useMemo } from \"react\";\n\nimport {\n bounce,\n flash,\n headShake,\n heartBeat,\n jello,\n pulse,\n rubberBand,\n shake,\n shakeX,\n shakeY,\n swing,\n tada,\n wobble,\n} from \"../animations/attention_seekers\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype AttentionSeekerEffect =\n | \"bounce\"\n | \"flash\"\n | \"headShake\"\n | \"heartBeat\"\n | \"jello\"\n | \"pulse\"\n | \"rubberBand\"\n | \"shake\"\n | \"shakeX\"\n | \"shakeY\"\n | \"swing\"\n | \"tada\"\n | \"wobble\";\n\nexport interface AttentionSeekerProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * The animation effect to use for this attention seeker.\n * @default \"bounce\"\n */\n effect?: AttentionSeekerEffect;\n}\n\nfunction getStyles(effect: AttentionSeekerEffect): [Keyframes, CSSProperties?] {\n switch (effect) {\n case \"bounce\":\n return [bounce, { transformOrigin: \"center bottom\" }];\n case \"flash\":\n return [flash];\n case \"headShake\":\n return [headShake, { animationTimingFunction: \"ease-in-out\" }];\n case \"heartBeat\":\n return [heartBeat, { animationTimingFunction: \"ease-in-out\" }];\n case \"jello\":\n return [jello, { transformOrigin: \"center\" }];\n case \"pulse\":\n return [pulse, { animationTimingFunction: \"ease-in-out\" }];\n case \"rubberBand\":\n return [rubberBand];\n case \"shake\":\n return [shake];\n case \"shakeX\":\n return [shakeX];\n case \"shakeY\":\n return [shakeY];\n case \"swing\":\n return [swing, { transformOrigin: \"top center\" }];\n case \"tada\":\n return [tada];\n case \"wobble\":\n return [wobble];\n }\n}\n\nexport const AttentionSeeker: React.FC<AttentionSeekerProps> = (props) => {\n const { effect = \"bounce\", style, ...rest } = props;\n\n const [keyframes, animationCss] = useMemo(() => getStyles(effect), [effect]);\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/bounce.css}\n */\nexport const bounce = keyframes`\n from,\n 20%,\n 53%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: translate3d(0, 0, 0);\n }\n\n 40%,\n 43% {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transform: translate3d(0, -30px, 0) scaleY(1.1);\n }\n\n 70% {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transform: translate3d(0, -15px, 0) scaleY(1.05);\n }\n\n 80% {\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: translate3d(0, 0, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, -4px, 0) scaleY(1.02);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/flash.css}\n */\nexport const flash = keyframes`\n from,\n 50%,\n to {\n opacity: 1;\n }\n\n 25%,\n 75% {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/headShake.css}\n */\nexport const headShake = keyframes`\n 0% {\n transform: translateX(0);\n }\n\n 6.5% {\n transform: translateX(-6px) rotateY(-9deg);\n }\n\n 18.5% {\n transform: translateX(5px) rotateY(7deg);\n }\n\n 31.5% {\n transform: translateX(-3px) rotateY(-5deg);\n }\n\n 43.5% {\n transform: translateX(2px) rotateY(3deg);\n }\n\n 50% {\n transform: translateX(0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/heartBeat.css}\n */\nexport const heartBeat = keyframes`\n 0% {\n transform: scale(1);\n }\n\n 14% {\n transform: scale(1.3);\n }\n\n 28% {\n transform: scale(1);\n }\n\n 42% {\n transform: scale(1.3);\n }\n\n 70% {\n transform: scale(1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/jello.css}\n */\nexport const jello = keyframes`\n from,\n 11.1%,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 22.2% {\n transform: skewX(-12.5deg) skewY(-12.5deg);\n }\n\n 33.3% {\n transform: skewX(6.25deg) skewY(6.25deg);\n }\n\n 44.4% {\n transform: skewX(-3.125deg) skewY(-3.125deg);\n }\n\n 55.5% {\n transform: skewX(1.5625deg) skewY(1.5625deg);\n }\n\n 66.6% {\n transform: skewX(-0.78125deg) skewY(-0.78125deg);\n }\n\n 77.7% {\n transform: skewX(0.390625deg) skewY(0.390625deg);\n }\n\n 88.8% {\n transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/pulse.css}\n */\nexport const pulse = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/rubberBand.css}\n */\nexport const rubberBand = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n transform: scale3d(0.95, 1.05, 1);\n }\n\n 75% {\n transform: scale3d(1.05, 0.95, 1);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shake.css}\n */\nexport const shake = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(10px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shakeX.css}\n */\nexport const shakeX = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(10px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shakeY.css}\n */\nexport const shakeY = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(0, -10px, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(0, 10px, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/swing.css}\n */\nexport const swing = keyframes`\n 20% {\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n to {\n transform: rotate3d(0, 0, 1, 0deg);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/tada.css}\n */\nexport const tada = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 10%,\n 20% {\n transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%,\n 50%,\n 70%,\n 90% {\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%,\n 60%,\n 80% {\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/wobble.css}\n */\nexport const wobble = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { ClassNames } from \"@emotion/react\";\nimport type { Keyframes, SerializedStyles } from \"@emotion/serialize\";\nimport { type CSSProperties, Children, isValidElement, useMemo } from \"react\";\nimport { InView, useInView } from \"react-intersection-observer\";\nimport { isFragment } from \"react-is\";\n\nimport { fadeInLeft } from \"./animations/fading_entrances\";\nimport { getAnimationCss } from \"./utils/animations\";\nimport { isNullable, isStringLike } from \"./utils/guards\";\nimport { matchIf, matchIfOrNull } from \"./utils/patterns\";\n\nfunction hideWhen(condition: boolean) {\n return matchIf<CSSProperties, CSSProperties>(\n () => ({ opacity: 0 }),\n () => ({ opacity: 1 })\n )(condition);\n}\n\nexport interface RevealProps {\n /**\n * Stagger its children animations.\n * @default false\n */\n cascade?: boolean;\n /**\n * Factor that affects the delay that each animated element in a cascade animation will be assigned.\n * @default 0.5\n */\n damping?: number;\n /**\n * Initial delay, in milliseconds.\n * @default 0\n */\n delay?: number;\n /**\n * Animation duration, in milliseconds.\n * @default 1000\n */\n duration?: number;\n /**\n * Float number between 0 and 1 indicating how much the element should be in viewport before the animation is triggered.\n * @default 0\n */\n fraction?: number;\n /**\n * Custom Emotion animation keyframes.\n */\n keyframes?: Keyframes;\n /**\n * Specifies if the animation should run only once or everytime the element enters/exits/re-enters the viewport.\n * @default false\n */\n triggerOnce?: boolean;\n /**\n * Class names to add to the container element.\n */\n className?: string;\n /**\n * Inline styles to add to the container element.\n */\n style?: React.CSSProperties;\n /**\n * Class names to add to the child element.\n */\n childClassName?: string;\n /**\n * Inline styles to add to the child element.\n */\n childStyle?: React.CSSProperties;\n /**\n * From React 18, children must be explicitly typed.\n * @see https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-typescript-definitions\n */\n children?: React.ReactNode;\n /**\n * Callback executed when the element enters or leaves the viewport.\n * If more than one element is being animated, this function is called\n * on each element.\n *\n * @param inView The current visibility flag.\n * @param entry The current IntersectionObserverEntry.\n */\n onVisibilityChange?(inView: boolean, entry: IntersectionObserverEntry): void;\n}\n\nexport const Reveal: React.FC<RevealProps> = (props) => {\n const {\n cascade = false,\n damping = 0.5,\n delay = 0,\n duration = 1000,\n fraction = 0,\n keyframes = fadeInLeft,\n triggerOnce = false,\n className,\n style,\n childClassName,\n childStyle,\n children,\n onVisibilityChange,\n } = props;\n\n const animationStyles = useMemo(\n () =>\n getAnimationCss({\n keyframes,\n duration,\n }),\n [duration, keyframes]\n );\n\n if (isNullable(children)) return null;\n\n if (isStringLike(children))\n return (\n <TextReveal {...props} animationStyles={animationStyles}>\n {String(children)}\n </TextReveal>\n );\n\n if (isFragment(children))\n return <FragmentReveal {...props} animationStyles={animationStyles} />;\n\n return (\n <>\n {Children.map(children, (node, index) => {\n if (!isValidElement(node)) return null;\n\n const nodeDelay = delay + (cascade ? index * duration * damping : 0);\n\n switch (node.type) {\n case \"ol\":\n case \"ul\":\n return (\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n className={cx(className, node.props.className)}\n style={Object.assign({}, style, node.props.style)}\n >\n <Reveal {...props}>{node.props.children}</Reveal>\n </node.type>\n )}\n </ClassNames>\n );\n case \"li\":\n return (\n <InView\n threshold={fraction}\n triggerOnce={triggerOnce}\n onChange={onVisibilityChange}\n >\n {({ inView, ref }) => (\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n ref={ref}\n className={cx(childClassName, node.props.className)}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign(\n {},\n childStyle,\n node.props.style,\n hideWhen(!inView),\n { animationDelay: nodeDelay + \"ms\" }\n )}\n />\n )}\n </ClassNames>\n )}\n </InView>\n );\n default:\n return (\n <InView\n threshold={fraction}\n triggerOnce={triggerOnce}\n onChange={onVisibilityChange}\n >\n {({ inView, ref }) => (\n <div\n ref={ref}\n className={className}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, style, {\n animationDelay: nodeDelay + \"ms\",\n })}\n >\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n className={cx(childClassName, node.props.className)}\n style={Object.assign(\n {},\n childStyle,\n node.props.style\n )}\n />\n )}\n </ClassNames>\n </div>\n )}\n </InView>\n );\n }\n })}\n </>\n );\n};\n\nconst textBaseStyles: CSSProperties = {\n display: \"inline-block\",\n whiteSpace: \"pre\",\n};\n\nconst TextReveal: React.FC<\n RevealProps & { animationStyles: SerializedStyles; children: string }\n> = (props) => {\n const {\n animationStyles,\n cascade = false,\n damping = 0.5,\n delay = 0,\n duration = 1000,\n fraction = 0,\n triggerOnce = false,\n className,\n style,\n children,\n onVisibilityChange,\n } = props;\n\n const { ref, inView } = useInView({\n triggerOnce,\n threshold: fraction,\n onChange: onVisibilityChange,\n });\n\n return matchIf(\n () => (\n <div\n ref={ref}\n className={className}\n style={Object.assign({}, style, textBaseStyles)}\n >\n {children.split(\"\").map((char, index) => (\n <span\n key={index}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, hideWhen(!inView), {\n animationDelay: delay + index * duration * damping + \"ms\",\n })}\n >\n {char}\n </span>\n ))}\n </div>\n ),\n () => <FragmentReveal {...props}>{children}</FragmentReveal>\n )(cascade);\n};\n\nconst FragmentReveal: React.FC<\n RevealProps & { animationStyles: SerializedStyles }\n> = (props) => {\n const {\n animationStyles,\n fraction = 0,\n triggerOnce = false,\n className,\n style,\n children,\n onVisibilityChange,\n } = props;\n\n const { ref, inView } = useInView({\n triggerOnce,\n threshold: fraction,\n onChange: onVisibilityChange,\n });\n\n return (\n <div\n ref={ref}\n className={className}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, style, hideWhen(!inView))}\n >\n {children}\n </div>\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeIn.css}\n */\nexport const fadeIn = keyframes`\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInBottomLeft.css}\n */\nexport const fadeInBottomLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInBottomRight.css}\n */\nexport const fadeInBottomRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInDown.css}\n */\nexport const fadeInDown = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInDownBig.css}\n */\nexport const fadeInDownBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInLeft.css}\n */\nexport const fadeInLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInLeftBig.css}\n */\nexport const fadeInLeftBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInRight.css}\n */\nexport const fadeInRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInRightBig.css}\n */\nexport const fadeInRightBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInTopLeft.css}\n */\nexport const fadeInTopLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInTopRight.css}\n */\nexport const fadeInTopRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInUp.css}\n */\nexport const fadeInUp = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInUpBig.css}\n */\nexport const fadeInUpBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { css } from \"@emotion/react\";\n\nimport { fadeInLeft } from \"../animations/fading_entrances\";\n\nexport function getAnimationCss({\n duration = 1000,\n delay = 0,\n timingFunction = \"ease\",\n keyframes = fadeInLeft,\n iterationCount = 1,\n}) {\n return css`\n animation-duration: ${duration}ms;\n animation-timing-function: ${timingFunction};\n animation-delay: ${delay}ms;\n animation-name: ${keyframes};\n animation-direction: normal;\n animation-fill-mode: both;\n animation-iteration-count: ${iterationCount};\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n `;\n}\n","export function isNullable(a: unknown): a is null | undefined {\n return a == undefined;\n}\n\nexport function isStringLike(\n value: unknown\n): value is string | number | boolean {\n return (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n}\n","export function matchIf<T, F>(onTrue: () => T, onFalse: () => F) {\n return (condition: boolean) => (condition ? onTrue() : onFalse());\n}\n\nexport function matchIfOrNull<T>(onTrue: () => T) {\n return matchIf(onTrue, () => null);\n}\n","import { useMemo } from \"react\";\n\nimport {\n bounceIn,\n bounceInDown,\n bounceInLeft,\n bounceInRight,\n bounceInUp,\n} from \"../animations/bouncing_entrances\";\nimport {\n bounceOut,\n bounceOutDown,\n bounceOutLeft,\n bounceOutRight,\n bounceOutUp,\n} from \"../animations/bouncing_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype BounceDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface BounceProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: BounceDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: BounceDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? bounceOutDown : bounceInDown;\n case \"left\":\n return reverse ? bounceOutLeft : bounceInLeft;\n case \"right\":\n return reverse ? bounceOutRight : bounceInRight;\n case \"up\":\n return reverse ? bounceOutUp : bounceInUp;\n default:\n return reverse ? bounceOut : bounceIn;\n }\n}\n\nexport const Bounce: React.FC<BounceProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceIn.css}\n */\nexport const bounceIn = keyframes`\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 20% {\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n transform: scale3d(0.97, 0.97, 0.97);\n }\n\n to {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInDown.css}\n */\nexport const bounceInDown = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0) scaleY(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0) scaleY(0.9);\n }\n\n 75% {\n transform: translate3d(0, -10px, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, 5px, 0) scaleY(0.985);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInLeft.css}\n */\nexport const bounceInLeft = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0) scaleX(1);\n }\n\n 75% {\n transform: translate3d(-10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n transform: translate3d(5px, 0, 0) scaleX(0.995);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInRight.css}\n */\nexport const bounceInRight = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0) scaleX(1);\n }\n\n 75% {\n transform: translate3d(10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n transform: translate3d(-5px, 0, 0) scaleX(0.995);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInUp.css}\n */\nexport const bounceInUp = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0) scaleY(5);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n 75% {\n transform: translate3d(0, 10px, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, -5px, 0) scaleY(0.985);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOut.css}\n */\nexport const bounceOut = keyframes`\n 20% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 50%,\n 55% {\n opacity: 1;\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutDown.css}\n */\nexport const bounceOutDown = keyframes`\n 20% {\n transform: translate3d(0, 10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0) scaleY(3);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutLeft.css}\n */\nexport const bounceOutLeft = keyframes`\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0) scaleX(2);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutRight.css}\n */\nexport const bounceOutRight = keyframes`\n 20% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0) scaleX(2);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutUp.css}\n */\nexport const bounceOutUp = keyframes`\n 20% {\n transform: translate3d(0, -10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0) scaleY(3);\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n fadeIn,\n fadeInBottomLeft,\n fadeInBottomRight,\n fadeInDown,\n fadeInDownBig,\n fadeInLeft,\n fadeInLeftBig,\n fadeInRight,\n fadeInRightBig,\n fadeInTopLeft,\n fadeInTopRight,\n fadeInUp,\n fadeInUpBig,\n} from \"../animations/fading_entrances\";\nimport {\n fadeOut,\n fadeOutBottomLeft,\n fadeOutBottomRight,\n fadeOutDown,\n fadeOutDownBig,\n fadeOutLeft,\n fadeOutLeftBig,\n fadeOutRight,\n fadeOutRightBig,\n fadeOutTopLeft,\n fadeOutTopRight,\n fadeOutUp,\n fadeOutUpBig,\n} from \"../animations/fading_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype FadeDirection =\n | \"bottom-left\"\n | \"bottom-right\"\n | \"down\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"up\";\n\nexport interface FadeProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Causes the animation to start farther. Only works with \"down\", \"left\", \"right\" and \"up\" directions.\n * @default false\n */\n big?: boolean;\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: FadeDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(big: boolean, reverse: boolean, direction?: FadeDirection) {\n switch (direction) {\n case \"bottom-left\":\n return reverse ? fadeOutBottomLeft : fadeInBottomLeft;\n case \"bottom-right\":\n return reverse ? fadeOutBottomRight : fadeInBottomRight;\n case \"down\":\n return big\n ? reverse\n ? fadeOutDownBig\n : fadeInDownBig\n : reverse\n ? fadeOutDown\n : fadeInDown;\n case \"left\":\n return big\n ? reverse\n ? fadeOutLeftBig\n : fadeInLeftBig\n : reverse\n ? fadeOutLeft\n : fadeInLeft;\n case \"right\":\n return big\n ? reverse\n ? fadeOutRightBig\n : fadeInRightBig\n : reverse\n ? fadeOutRight\n : fadeInRight;\n case \"top-left\":\n return reverse ? fadeOutTopLeft : fadeInTopLeft;\n case \"top-right\":\n return reverse ? fadeOutTopRight : fadeInTopRight;\n case \"up\":\n return big\n ? reverse\n ? fadeOutUpBig\n : fadeInUpBig\n : reverse\n ? fadeOutUp\n : fadeInUp;\n default:\n return reverse ? fadeOut : fadeIn;\n }\n}\n\nexport const Fade: React.FC<FadeProps> = (props) => {\n const { big = false, direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(big, reverse, direction),\n [big, direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOut.css}\n */\nexport const fadeOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutBottomLeft.css}\n */\nexport const fadeOutBottomLeft = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutBottomRight.css}\n */\nexport const fadeOutBottomRight = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutDown.css}\n */\nexport const fadeOutDown = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutDownBig.css}\n */\nexport const fadeOutDownBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutLeft.css}\n */\nexport const fadeOutLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutLeftBig.css}\n */\nexport const fadeOutLeftBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutRight.css}\n */\nexport const fadeOutRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutRightBig.css}\n */\nexport const fadeOutRightBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutTopLeft.css}\n */\nexport const fadeOutTopLeft = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutTopRight.css}\n */\nexport const fadeOutTopRight = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutUp.css}\n */\nexport const fadeOutUp = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutUpBig.css}\n */\nexport const fadeOutUpBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n`;\n","import { type CSSProperties, useMemo } from \"react\";\n\nimport {\n flip,\n flipInX,\n flipInY,\n flipOutX,\n flipOutY,\n} from \"../animations/flippers\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype FlipDirection = \"horizontal\" | \"vertical\";\n\nexport interface FlipProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Axis direction of the animation.\n * @default undefined\n */\n direction?: FlipDirection;\n /**\n * Specifies if the animation should make element(s) disappear. It only has effect if a direction is specified.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: FlipDirection) {\n switch (direction) {\n case \"horizontal\":\n return reverse ? flipOutX : flipInX;\n case \"vertical\":\n return reverse ? flipOutY : flipInY;\n default:\n return flip;\n }\n}\n\nconst animationCss: CSSProperties = {\n backfaceVisibility: \"visible\",\n};\n\nexport const Flip: React.FC<FlipProps> = (props) => {\n const { direction, reverse = false, style, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flip.css}\n */\nexport const flip = keyframes`\n from {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n animation-timing-function: ease-out;\n }\n\n 40% {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n animation-timing-function: ease-out;\n }\n\n 50% {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n animation-timing-function: ease-in;\n }\n\n 80% {\n transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n animation-timing-function: ease-in;\n }\n\n to {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n animation-timing-function: ease-in;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipInX.css}\n */\nexport const flipInX = keyframes`\n from {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n animation-timing-function: ease-in;\n }\n\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n to {\n transform: perspective(400px);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipInY.css}\n */\nexport const flipInY = keyframes`\n from {\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n animation-timing-function: ease-in;\n }\n\n 60% {\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n to {\n transform: perspective(400px);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipOutX.css}\n */\nexport const flipOutX = keyframes`\n from {\n transform: perspective(400px);\n }\n\n 30% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n to {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipOutY.css}\n */\nexport const flipOutY = keyframes`\n from {\n transform: perspective(400px);\n }\n\n 30% {\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n to {\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/hinge.css}\n */\nexport const hinge = keyframes`\n 0% {\n animation-timing-function: ease-in-out;\n }\n\n 20%,\n 60% {\n transform: rotate3d(0, 0, 1, 80deg);\n animation-timing-function: ease-in-out;\n }\n\n 40%,\n 80% {\n transform: rotate3d(0, 0, 1, 60deg);\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n to {\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/jackInTheBox.css}\n */\nexport const jackInTheBox = keyframes`\n from {\n opacity: 0;\n transform: scale(0.1) rotate(30deg);\n transform-origin: center bottom;\n }\n\n 50% {\n transform: rotate(-10deg);\n }\n\n 70% {\n transform: rotate(3deg);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/rollIn.css}\n */\nexport const rollIn = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/rollOut.css}\n */\nexport const rollOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n`;\n","import type { CSSProperties } from \"react\";\n\nimport { hinge } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport type HingeProps = Omit<RevealProps, \"keyframes\">;\n\nconst animationCss: CSSProperties = {\n transformOrigin: \"top left\",\n};\n\nexport const Hinge: React.FC<HingeProps> = (props) => {\n const { style, ...rest } = props;\n\n return (\n <Reveal\n keyframes={hinge}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { jackInTheBox } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport type JackInTheBoxProps = Omit<RevealProps, \"keyframes\">;\n\nexport const JackInTheBox: React.FC<JackInTheBoxProps> = (props) => {\n return <Reveal keyframes={jackInTheBox} {...props} />;\n};\n","import { useMemo } from \"react\";\n\nimport { rollIn, rollOut } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport interface RollProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean) {\n return reverse ? rollOut : rollIn;\n}\n\nexport const Roll: React.FC<RollProps> = (props) => {\n const { reverse = false, ...rest } = props;\n\n const keyframes = useMemo(() => getStyles(reverse), [reverse]);\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import type { Keyframes } from \"@emotion/serialize\";\nimport { type CSSProperties, useMemo } from \"react\";\n\nimport {\n rotateIn,\n rotateInDownLeft,\n rotateInDownRight,\n rotateInUpLeft,\n rotateInUpRight,\n} from \"../animations/rotating_entrances\";\nimport {\n rotateOut,\n rotateOutDownLeft,\n rotateOutDownRight,\n rotateOutUpLeft,\n rotateOutUpRight,\n} from \"../animations/rotating_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype RotateDirection =\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-left\"\n | \"top-right\";\n\nexport interface RotateProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: RotateDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(\n reverse: boolean,\n direction?: RotateDirection\n): [Keyframes, CSSProperties?] {\n switch (direction) {\n case \"bottom-left\":\n return reverse\n ? [rotateOutDownLeft, { transformOrigin: \"left bottom\" }]\n : [rotateInDownLeft, { transformOrigin: \"left bottom\" }];\n case \"bottom-right\":\n return reverse\n ? [rotateOutDownRight, { transformOrigin: \"right bottom\" }]\n : [rotateInDownRight, { transformOrigin: \"right bottom\" }];\n case \"top-left\":\n return reverse\n ? [rotateOutUpLeft, { transformOrigin: \"left bottom\" }]\n : [rotateInUpLeft, { transformOrigin: \"left bottom\" }];\n case \"top-right\":\n return reverse\n ? [rotateOutUpRight, { transformOrigin: \"right bottom\" }]\n : [rotateInUpRight, { transformOrigin: \"right bottom\" }];\n default:\n return reverse\n ? [rotateOut, { transformOrigin: \"center\" }]\n : [rotateIn, { transformOrigin: \"center\" }];\n }\n}\n\nexport const Rotate: React.FC<RotateProps> = (props) => {\n const { direction, reverse = false, style, ...rest } = props;\n\n const [keyframes, animationCss] = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateIn.css}\n */\nexport const rotateIn = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInDownLeft.css}\n */\nexport const rotateInDownLeft = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInDownRight.css}\n */\nexport const rotateInDownRight = keyframes`\n from {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInUpLeft.css}\n */\nexport const rotateInUpLeft = keyframes`\n from {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInUpRight.css}\n */\nexport const rotateInUpRight = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOut.css}\n */\nexport const rotateOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutDownLeft.css}\n */\nexport const rotateOutDownLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutDownRight.css}\n */\nexport const rotateOutDownRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutUpLeft.css}\n */\nexport const rotateOutUpLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutUpRight.css}\n */\nexport const rotateOutUpRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n slideInDown,\n slideInLeft,\n slideInRight,\n slideInUp,\n} from \"../animations/sliding_entrances\";\nimport {\n slideOutDown,\n slideOutLeft,\n slideOutRight,\n slideOutUp,\n} from \"../animations/sliding_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype SlideDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface SlideProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: SlideDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: SlideDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? slideOutDown : slideInDown;\n case \"right\":\n return reverse ? slideOutRight : slideInRight;\n case \"up\":\n return reverse ? slideOutUp : slideInUp;\n case \"left\":\n default:\n return reverse ? slideOutLeft : slideInLeft;\n }\n}\n\nexport const Slide: React.FC<SlideProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInDown.css}\n */\nexport const slideInDown = keyframes`\n from {\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInLeft.css}\n */\nexport const slideInLeft = keyframes`\n from {\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInRight.css}\n */\nexport const slideInRight = keyframes`\n from {\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInUp.css}\n */\nexport const slideInUp = keyframes`\n from {\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutDown.css}\n */\nexport const slideOutDown = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(0, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutLeft.css}\n */\nexport const slideOutLeft = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(-100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutRight.css}\n */\nexport const slideOutRight = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutUp.css}\n */\nexport const slideOutUp = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(0, -100%, 0);\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n zoomIn,\n zoomInDown,\n zoomInLeft,\n zoomInRight,\n zoomInUp,\n} from \"../animations/zooming_entrances\";\nimport {\n zoomOut,\n zoomOutDown,\n zoomOutLeft,\n zoomOutRight,\n zoomOutUp,\n} from \"../animations/zooming_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype ZoomDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface ZoomProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: ZoomDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: ZoomDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? zoomOutDown : zoomInDown;\n case \"left\":\n return reverse ? zoomOutLeft : zoomInLeft;\n case \"right\":\n return reverse ? zoomOutRight : zoomInRight;\n case \"up\":\n return reverse ? zoomOutUp : zoomInUp;\n default:\n return reverse ? zoomOut : zoomIn;\n }\n}\n\nexport const Zoom: React.FC<ZoomProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomIn.css}\n */\nexport const zoomIn = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 50% {\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInDown.css}\n */\nexport const zoomInDown = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInLeft.css}\n */\nexport const zoomInLeft = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInRight.css}\n */\nexport const zoomInRight = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInUp.css}\n */\nexport const zoomInUp = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOut.css}\n */\nexport const zoomOut = keyframes`\n from {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n to {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutDown.css}\n */\nexport const zoomOutDown = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutLeft.css}\n */\nexport const zoomOutLeft = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: scale(0.1) translate3d(-2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutRight.css}\n */\nexport const zoomOutRight = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: scale(0.1) translate3d(2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutUp.css}\n */\nexport const zoomOutUp = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n"],"mappings":"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","names":["useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","keyframes","animationCss","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo","keyframes","keyframes","keyframes","keyframes","jsx","animationCss","jsx","useMemo","jsx","getStyles","keyframes","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","animationCss","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo"]}
1
+ {"version":3,"sources":["../src/components/AttentionSeeker.tsx","../src/animations/attention_seekers/bounce.ts","../src/animations/attention_seekers/flash.ts","../src/animations/attention_seekers/headShake.ts","../src/animations/attention_seekers/heartBeat.ts","../src/animations/attention_seekers/jello.ts","../src/animations/attention_seekers/pulse.ts","../src/animations/attention_seekers/rubberBand.ts","../src/animations/attention_seekers/shake.ts","../src/animations/attention_seekers/shakeX.ts","../src/animations/attention_seekers/shakeY.ts","../src/animations/attention_seekers/swing.ts","../src/animations/attention_seekers/tada.ts","../src/animations/attention_seekers/wobble.ts","../src/Reveal.tsx","../src/animations/fading_entrances/fadeIn.ts","../src/animations/fading_entrances/fadeInBottomLeft.ts","../src/animations/fading_entrances/fadeInBottomRight.ts","../src/animations/fading_entrances/fadeInDown.ts","../src/animations/fading_entrances/fadeInDownBig.ts","../src/animations/fading_entrances/fadeInLeft.ts","../src/animations/fading_entrances/fadeInLeftBig.ts","../src/animations/fading_entrances/fadeInRight.ts","../src/animations/fading_entrances/fadeInRightBig.ts","../src/animations/fading_entrances/fadeInTopLeft.ts","../src/animations/fading_entrances/fadeInTopRight.ts","../src/animations/fading_entrances/fadeInUp.ts","../src/animations/fading_entrances/fadeInUpBig.ts","../src/utils/animations.ts","../src/utils/guards.ts","../src/utils/patterns.ts","../src/components/Bounce.tsx","../src/animations/bouncing_entrances/bounceIn.ts","../src/animations/bouncing_entrances/bounceInDown.ts","../src/animations/bouncing_entrances/bounceInLeft.ts","../src/animations/bouncing_entrances/bounceInRight.ts","../src/animations/bouncing_entrances/bounceInUp.ts","../src/animations/bouncing_exits/bounceOut.ts","../src/animations/bouncing_exits/bounceOutDown.ts","../src/animations/bouncing_exits/bounceOutLeft.ts","../src/animations/bouncing_exits/bounceOutRight.ts","../src/animations/bouncing_exits/bounceOutUp.ts","../src/components/Fade.tsx","../src/animations/fading_exits/fadeOut.ts","../src/animations/fading_exits/fadeOutBottomLeft.ts","../src/animations/fading_exits/fadeOutBottomRight.ts","../src/animations/fading_exits/fadeOutDown.ts","../src/animations/fading_exits/fadeOutDownBig.ts","../src/animations/fading_exits/fadeOutLeft.ts","../src/animations/fading_exits/fadeOutLeftBig.ts","../src/animations/fading_exits/fadeOutRight.ts","../src/animations/fading_exits/fadeOutRightBig.ts","../src/animations/fading_exits/fadeOutTopLeft.ts","../src/animations/fading_exits/fadeOutTopRight.ts","../src/animations/fading_exits/fadeOutUp.ts","../src/animations/fading_exits/fadeOutUpBig.ts","../src/components/Flip.tsx","../src/animations/flippers/flip.ts","../src/animations/flippers/flipInX.ts","../src/animations/flippers/flipInY.ts","../src/animations/flippers/flipOutX.ts","../src/animations/flippers/flipOutY.ts","../src/animations/specials/hinge.ts","../src/animations/specials/jackInTheBox.ts","../src/animations/specials/rollIn.ts","../src/animations/specials/rollOut.ts","../src/components/Hinge.tsx","../src/components/JackInTheBox.tsx","../src/components/Roll.tsx","../src/components/Rotate.tsx","../src/animations/rotating_entrances/rotateIn.ts","../src/animations/rotating_entrances/rotateInDownLeft.ts","../src/animations/rotating_entrances/rotateInDownRight.ts","../src/animations/rotating_entrances/rotateInUpLeft.ts","../src/animations/rotating_entrances/rotateInUpRight.ts","../src/animations/rotating_exits/rotateOut.ts","../src/animations/rotating_exits/rotateOutDownLeft.ts","../src/animations/rotating_exits/rotateOutDownRight.ts","../src/animations/rotating_exits/rotateOutUpLeft.ts","../src/animations/rotating_exits/rotateOutUpRight.ts","../src/components/Slide.tsx","../src/animations/sliding_entrances/slideInDown.ts","../src/animations/sliding_entrances/slideInLeft.ts","../src/animations/sliding_entrances/slideInRight.ts","../src/animations/sliding_entrances/slideInUp.ts","../src/animations/sliding_exits/slideOutDown.ts","../src/animations/sliding_exits/slideOutLeft.ts","../src/animations/sliding_exits/slideOutRight.ts","../src/animations/sliding_exits/slideOutUp.ts","../src/components/Zoom.tsx","../src/animations/zooming_entrances/zoomIn.ts","../src/animations/zooming_entrances/zoomInDown.ts","../src/animations/zooming_entrances/zoomInLeft.ts","../src/animations/zooming_entrances/zoomInRight.ts","../src/animations/zooming_entrances/zoomInUp.ts","../src/animations/zooming_exits/zoomOut.ts","../src/animations/zooming_exits/zoomOutDown.ts","../src/animations/zooming_exits/zoomOutLeft.ts","../src/animations/zooming_exits/zoomOutRight.ts","../src/animations/zooming_exits/zoomOutUp.ts"],"sourcesContent":["import type { Keyframes } from \"@emotion/serialize\";\nimport { type CSSProperties, useMemo } from \"react\";\n\nimport {\n bounce,\n flash,\n headShake,\n heartBeat,\n jello,\n pulse,\n rubberBand,\n shake,\n shakeX,\n shakeY,\n swing,\n tada,\n wobble,\n} from \"../animations/attention_seekers\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype AttentionSeekerEffect =\n | \"bounce\"\n | \"flash\"\n | \"headShake\"\n | \"heartBeat\"\n | \"jello\"\n | \"pulse\"\n | \"rubberBand\"\n | \"shake\"\n | \"shakeX\"\n | \"shakeY\"\n | \"swing\"\n | \"tada\"\n | \"wobble\";\n\nexport interface AttentionSeekerProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * The animation effect to use for this attention seeker.\n * @default \"bounce\"\n */\n effect?: AttentionSeekerEffect;\n}\n\nfunction getStyles(effect: AttentionSeekerEffect): [Keyframes, CSSProperties?] {\n switch (effect) {\n case \"bounce\":\n return [bounce, { transformOrigin: \"center bottom\" }];\n case \"flash\":\n return [flash];\n case \"headShake\":\n return [headShake, { animationTimingFunction: \"ease-in-out\" }];\n case \"heartBeat\":\n return [heartBeat, { animationTimingFunction: \"ease-in-out\" }];\n case \"jello\":\n return [jello, { transformOrigin: \"center\" }];\n case \"pulse\":\n return [pulse, { animationTimingFunction: \"ease-in-out\" }];\n case \"rubberBand\":\n return [rubberBand];\n case \"shake\":\n return [shake];\n case \"shakeX\":\n return [shakeX];\n case \"shakeY\":\n return [shakeY];\n case \"swing\":\n return [swing, { transformOrigin: \"top center\" }];\n case \"tada\":\n return [tada];\n case \"wobble\":\n return [wobble];\n }\n}\n\nexport const AttentionSeeker: React.FC<AttentionSeekerProps> = (props) => {\n const { effect = \"bounce\", style, ...rest } = props;\n\n const [keyframes, animationCss] = useMemo(() => getStyles(effect), [effect]);\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/bounce.css}\n */\nexport const bounce = keyframes`\n from,\n 20%,\n 53%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: translate3d(0, 0, 0);\n }\n\n 40%,\n 43% {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transform: translate3d(0, -30px, 0) scaleY(1.1);\n }\n\n 70% {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transform: translate3d(0, -15px, 0) scaleY(1.05);\n }\n\n 80% {\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: translate3d(0, 0, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, -4px, 0) scaleY(1.02);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/flash.css}\n */\nexport const flash = keyframes`\n from,\n 50%,\n to {\n opacity: 1;\n }\n\n 25%,\n 75% {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/headShake.css}\n */\nexport const headShake = keyframes`\n 0% {\n transform: translateX(0);\n }\n\n 6.5% {\n transform: translateX(-6px) rotateY(-9deg);\n }\n\n 18.5% {\n transform: translateX(5px) rotateY(7deg);\n }\n\n 31.5% {\n transform: translateX(-3px) rotateY(-5deg);\n }\n\n 43.5% {\n transform: translateX(2px) rotateY(3deg);\n }\n\n 50% {\n transform: translateX(0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/heartBeat.css}\n */\nexport const heartBeat = keyframes`\n 0% {\n transform: scale(1);\n }\n\n 14% {\n transform: scale(1.3);\n }\n\n 28% {\n transform: scale(1);\n }\n\n 42% {\n transform: scale(1.3);\n }\n\n 70% {\n transform: scale(1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/jello.css}\n */\nexport const jello = keyframes`\n from,\n 11.1%,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 22.2% {\n transform: skewX(-12.5deg) skewY(-12.5deg);\n }\n\n 33.3% {\n transform: skewX(6.25deg) skewY(6.25deg);\n }\n\n 44.4% {\n transform: skewX(-3.125deg) skewY(-3.125deg);\n }\n\n 55.5% {\n transform: skewX(1.5625deg) skewY(1.5625deg);\n }\n\n 66.6% {\n transform: skewX(-0.78125deg) skewY(-0.78125deg);\n }\n\n 77.7% {\n transform: skewX(0.390625deg) skewY(0.390625deg);\n }\n\n 88.8% {\n transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/pulse.css}\n */\nexport const pulse = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/rubberBand.css}\n */\nexport const rubberBand = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n transform: scale3d(0.95, 1.05, 1);\n }\n\n 75% {\n transform: scale3d(1.05, 0.95, 1);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shake.css}\n */\nexport const shake = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(10px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shakeX.css}\n */\nexport const shakeX = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(10px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/shakeY.css}\n */\nexport const shakeY = keyframes`\n from,\n to {\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n transform: translate3d(0, -10px, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: translate3d(0, 10px, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/swing.css}\n */\nexport const swing = keyframes`\n 20% {\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n to {\n transform: rotate3d(0, 0, 1, 0deg);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/tada.css}\n */\nexport const tada = keyframes`\n from {\n transform: scale3d(1, 1, 1);\n }\n\n 10%,\n 20% {\n transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%,\n 50%,\n 70%,\n 90% {\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%,\n 60%,\n 80% {\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n to {\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/attention_seekers/wobble.css}\n */\nexport const wobble = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { ClassNames } from \"@emotion/react\";\nimport type { Keyframes, SerializedStyles } from \"@emotion/serialize\";\nimport { type CSSProperties, Children, isValidElement, useMemo } from \"react\";\nimport { InView, useInView } from \"react-intersection-observer\";\nimport { isFragment } from \"react-is\";\n\nimport { fadeInLeft } from \"./animations/fading_entrances\";\nimport { getAnimationCss } from \"./utils/animations\";\nimport { isNullable, isStringLike } from \"./utils/guards\";\nimport { matchIf, matchIfOrNull } from \"./utils/patterns\";\n\nfunction hideWhen(condition: boolean) {\n return matchIfOrNull<CSSProperties>(() => ({ opacity: 0 }))(condition);\n}\n\nexport interface RevealProps {\n /**\n * Stagger its children animations.\n * @default false\n */\n cascade?: boolean;\n /**\n * Factor that affects the delay that each animated element in a cascade animation will be assigned.\n * @default 0.5\n */\n damping?: number;\n /**\n * Initial delay, in milliseconds.\n * @default 0\n */\n delay?: number;\n /**\n * Animation duration, in milliseconds.\n * @default 1000\n */\n duration?: number;\n /**\n * Float number between 0 and 1 indicating how much the element should be in viewport before the animation is triggered.\n * @default 0\n */\n fraction?: number;\n /**\n * Custom Emotion animation keyframes.\n */\n keyframes?: Keyframes;\n /**\n * Specifies if the animation should run only once or everytime the element enters/exits/re-enters the viewport.\n * @default false\n */\n triggerOnce?: boolean;\n /**\n * Class names to add to the container element.\n */\n className?: string;\n /**\n * Inline styles to add to the container element.\n */\n style?: React.CSSProperties;\n /**\n * Class names to add to the child element.\n */\n childClassName?: string;\n /**\n * Inline styles to add to the child element.\n */\n childStyle?: React.CSSProperties;\n /**\n * From React 18, children must be explicitly typed.\n * @see https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-typescript-definitions\n */\n children?: React.ReactNode;\n /**\n * Callback executed when the element enters or leaves the viewport.\n * If more than one element is being animated, this function is called\n * on each element.\n *\n * @param inView The current visibility flag.\n * @param entry The current IntersectionObserverEntry.\n */\n onVisibilityChange?(inView: boolean, entry: IntersectionObserverEntry): void;\n}\n\nexport const Reveal: React.FC<RevealProps> = (props) => {\n const {\n cascade = false,\n damping = 0.5,\n delay = 0,\n duration = 1000,\n fraction = 0,\n keyframes = fadeInLeft,\n triggerOnce = false,\n className,\n style,\n childClassName,\n childStyle,\n children,\n onVisibilityChange,\n } = props;\n\n const animationStyles = useMemo(\n () =>\n getAnimationCss({\n keyframes,\n duration,\n }),\n [duration, keyframes]\n );\n\n if (isNullable(children)) return null;\n\n if (isStringLike(children))\n return (\n <TextReveal {...props} animationStyles={animationStyles}>\n {String(children)}\n </TextReveal>\n );\n\n if (isFragment(children))\n return <FragmentReveal {...props} animationStyles={animationStyles} />;\n\n return (\n <>\n {Children.map(children, (node, index) => {\n if (!isValidElement(node)) return null;\n\n const nodeDelay = delay + (cascade ? index * duration * damping : 0);\n\n switch (node.type) {\n case \"ol\":\n case \"ul\":\n return (\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n className={cx(className, node.props.className)}\n style={Object.assign({}, style, node.props.style)}\n >\n <Reveal {...props}>{node.props.children}</Reveal>\n </node.type>\n )}\n </ClassNames>\n );\n case \"li\":\n return (\n <InView\n threshold={fraction}\n triggerOnce={triggerOnce}\n onChange={onVisibilityChange}\n >\n {({ inView, ref }) => (\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n ref={ref}\n className={cx(childClassName, node.props.className)}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign(\n {},\n childStyle,\n node.props.style,\n hideWhen(!inView),\n { animationDelay: nodeDelay + \"ms\" }\n )}\n />\n )}\n </ClassNames>\n )}\n </InView>\n );\n default:\n return (\n <InView\n threshold={fraction}\n triggerOnce={triggerOnce}\n onChange={onVisibilityChange}\n >\n {({ inView, ref }) => (\n <div\n ref={ref}\n className={className}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, style, {\n animationDelay: nodeDelay + \"ms\",\n })}\n >\n <ClassNames>\n {({ cx }) => (\n <node.type\n {...node.props}\n className={cx(childClassName, node.props.className)}\n style={Object.assign(\n {},\n childStyle,\n node.props.style\n )}\n />\n )}\n </ClassNames>\n </div>\n )}\n </InView>\n );\n }\n })}\n </>\n );\n};\n\nconst textBaseStyles: CSSProperties = {\n display: \"inline-block\",\n whiteSpace: \"pre\",\n};\n\nconst TextReveal: React.FC<\n RevealProps & { animationStyles: SerializedStyles; children: string }\n> = (props) => {\n const {\n animationStyles,\n cascade = false,\n damping = 0.5,\n delay = 0,\n duration = 1000,\n fraction = 0,\n triggerOnce = false,\n className,\n style,\n children,\n onVisibilityChange,\n } = props;\n\n const { ref, inView } = useInView({\n triggerOnce,\n threshold: fraction,\n onChange: onVisibilityChange,\n });\n\n return matchIf(\n () => (\n <div\n ref={ref}\n className={className}\n style={Object.assign({}, style, textBaseStyles)}\n >\n {children.split(\"\").map((char, index) => (\n <span\n key={index}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, hideWhen(!inView), {\n animationDelay: delay + index * duration * damping + \"ms\",\n })}\n >\n {char}\n </span>\n ))}\n </div>\n ),\n () => <FragmentReveal {...props}>{children}</FragmentReveal>\n )(cascade);\n};\n\nconst FragmentReveal: React.FC<\n RevealProps & { animationStyles: SerializedStyles }\n> = (props) => {\n const {\n animationStyles,\n fraction = 0,\n triggerOnce = false,\n className,\n style,\n children,\n onVisibilityChange,\n } = props;\n\n const { ref, inView } = useInView({\n triggerOnce,\n threshold: fraction,\n onChange: onVisibilityChange,\n });\n\n return (\n <div\n ref={ref}\n className={className}\n css={matchIfOrNull(() => animationStyles)(inView)}\n style={Object.assign({}, style, hideWhen(!inView))}\n >\n {children}\n </div>\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeIn.css}\n */\nexport const fadeIn = keyframes`\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInBottomLeft.css}\n */\nexport const fadeInBottomLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInBottomRight.css}\n */\nexport const fadeInBottomRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInDown.css}\n */\nexport const fadeInDown = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInDownBig.css}\n */\nexport const fadeInDownBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInLeft.css}\n */\nexport const fadeInLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInLeftBig.css}\n */\nexport const fadeInLeftBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInRight.css}\n */\nexport const fadeInRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInRightBig.css}\n */\nexport const fadeInRightBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInTopLeft.css}\n */\nexport const fadeInTopLeft = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInTopRight.css}\n */\nexport const fadeInTopRight = keyframes`\n from {\n opacity: 0;\n transform: translate3d(100%, -100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInUp.css}\n */\nexport const fadeInUp = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_entrances/fadeInUpBig.css}\n */\nexport const fadeInUpBig = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { css } from \"@emotion/react\";\n\nimport { fadeInLeft } from \"../animations/fading_entrances\";\n\nexport function getAnimationCss({\n duration = 1000,\n delay = 0,\n timingFunction = \"ease\",\n keyframes = fadeInLeft,\n iterationCount = 1,\n}) {\n return css`\n animation-duration: ${duration}ms;\n animation-timing-function: ${timingFunction};\n animation-delay: ${delay}ms;\n animation-name: ${keyframes};\n animation-direction: normal;\n animation-fill-mode: both;\n animation-iteration-count: ${iterationCount};\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n `;\n}\n","export function isNullable(a: unknown): a is null | undefined {\n return a == undefined;\n}\n\nexport function isStringLike(\n value: unknown\n): value is string | number | boolean {\n return (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n}\n","export function matchIf<T, F>(onTrue: () => T, onFalse: () => F) {\n return (condition: boolean) => (condition ? onTrue() : onFalse());\n}\n\nexport function matchIfOrNull<T>(onTrue: () => T) {\n return matchIf(onTrue, () => null);\n}\n","import { useMemo } from \"react\";\n\nimport {\n bounceIn,\n bounceInDown,\n bounceInLeft,\n bounceInRight,\n bounceInUp,\n} from \"../animations/bouncing_entrances\";\nimport {\n bounceOut,\n bounceOutDown,\n bounceOutLeft,\n bounceOutRight,\n bounceOutUp,\n} from \"../animations/bouncing_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype BounceDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface BounceProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: BounceDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: BounceDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? bounceOutDown : bounceInDown;\n case \"left\":\n return reverse ? bounceOutLeft : bounceInLeft;\n case \"right\":\n return reverse ? bounceOutRight : bounceInRight;\n case \"up\":\n return reverse ? bounceOutUp : bounceInUp;\n default:\n return reverse ? bounceOut : bounceIn;\n }\n}\n\nexport const Bounce: React.FC<BounceProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceIn.css}\n */\nexport const bounceIn = keyframes`\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 20% {\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n transform: scale3d(0.97, 0.97, 0.97);\n }\n\n to {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInDown.css}\n */\nexport const bounceInDown = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0) scaleY(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0) scaleY(0.9);\n }\n\n 75% {\n transform: translate3d(0, -10px, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, 5px, 0) scaleY(0.985);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInLeft.css}\n */\nexport const bounceInLeft = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0) scaleX(1);\n }\n\n 75% {\n transform: translate3d(-10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n transform: translate3d(5px, 0, 0) scaleX(0.995);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInRight.css}\n */\nexport const bounceInRight = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0) scaleX(1);\n }\n\n 75% {\n transform: translate3d(10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n transform: translate3d(-5px, 0, 0) scaleX(0.995);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_entrances/bounceInUp.css}\n */\nexport const bounceInUp = keyframes`\n from,\n 60%,\n 75%,\n 90%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0) scaleY(5);\n }\n\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n 75% {\n transform: translate3d(0, 10px, 0) scaleY(0.95);\n }\n\n 90% {\n transform: translate3d(0, -5px, 0) scaleY(0.985);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOut.css}\n */\nexport const bounceOut = keyframes`\n 20% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 50%,\n 55% {\n opacity: 1;\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutDown.css}\n */\nexport const bounceOutDown = keyframes`\n 20% {\n transform: translate3d(0, 10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0) scaleY(3);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutLeft.css}\n */\nexport const bounceOutLeft = keyframes`\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0) scaleX(2);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutRight.css}\n */\nexport const bounceOutRight = keyframes`\n 20% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0) scaleX(2);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/bouncing_exits/bounceOutUp.css}\n */\nexport const bounceOutUp = keyframes`\n 20% {\n transform: translate3d(0, -10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0) scaleY(3);\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n fadeIn,\n fadeInBottomLeft,\n fadeInBottomRight,\n fadeInDown,\n fadeInDownBig,\n fadeInLeft,\n fadeInLeftBig,\n fadeInRight,\n fadeInRightBig,\n fadeInTopLeft,\n fadeInTopRight,\n fadeInUp,\n fadeInUpBig,\n} from \"../animations/fading_entrances\";\nimport {\n fadeOut,\n fadeOutBottomLeft,\n fadeOutBottomRight,\n fadeOutDown,\n fadeOutDownBig,\n fadeOutLeft,\n fadeOutLeftBig,\n fadeOutRight,\n fadeOutRightBig,\n fadeOutTopLeft,\n fadeOutTopRight,\n fadeOutUp,\n fadeOutUpBig,\n} from \"../animations/fading_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype FadeDirection =\n | \"bottom-left\"\n | \"bottom-right\"\n | \"down\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"up\";\n\nexport interface FadeProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Causes the animation to start farther. Only works with \"down\", \"left\", \"right\" and \"up\" directions.\n * @default false\n */\n big?: boolean;\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: FadeDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(big: boolean, reverse: boolean, direction?: FadeDirection) {\n switch (direction) {\n case \"bottom-left\":\n return reverse ? fadeOutBottomLeft : fadeInBottomLeft;\n case \"bottom-right\":\n return reverse ? fadeOutBottomRight : fadeInBottomRight;\n case \"down\":\n return big\n ? reverse\n ? fadeOutDownBig\n : fadeInDownBig\n : reverse\n ? fadeOutDown\n : fadeInDown;\n case \"left\":\n return big\n ? reverse\n ? fadeOutLeftBig\n : fadeInLeftBig\n : reverse\n ? fadeOutLeft\n : fadeInLeft;\n case \"right\":\n return big\n ? reverse\n ? fadeOutRightBig\n : fadeInRightBig\n : reverse\n ? fadeOutRight\n : fadeInRight;\n case \"top-left\":\n return reverse ? fadeOutTopLeft : fadeInTopLeft;\n case \"top-right\":\n return reverse ? fadeOutTopRight : fadeInTopRight;\n case \"up\":\n return big\n ? reverse\n ? fadeOutUpBig\n : fadeInUpBig\n : reverse\n ? fadeOutUp\n : fadeInUp;\n default:\n return reverse ? fadeOut : fadeIn;\n }\n}\n\nexport const Fade: React.FC<FadeProps> = (props) => {\n const { big = false, direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(big, reverse, direction),\n [big, direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOut.css}\n */\nexport const fadeOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutBottomLeft.css}\n */\nexport const fadeOutBottomLeft = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutBottomRight.css}\n */\nexport const fadeOutBottomRight = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutDown.css}\n */\nexport const fadeOutDown = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutDownBig.css}\n */\nexport const fadeOutDownBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutLeft.css}\n */\nexport const fadeOutLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutLeftBig.css}\n */\nexport const fadeOutLeftBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutRight.css}\n */\nexport const fadeOutRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutRightBig.css}\n */\nexport const fadeOutRightBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutTopLeft.css}\n */\nexport const fadeOutTopLeft = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(-100%, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutTopRight.css}\n */\nexport const fadeOutTopRight = keyframes`\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutUp.css}\n */\nexport const fadeOutUp = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/fading_exits/fadeOutUpBig.css}\n */\nexport const fadeOutUpBig = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n`;\n","import { type CSSProperties, useMemo } from \"react\";\n\nimport {\n flip,\n flipInX,\n flipInY,\n flipOutX,\n flipOutY,\n} from \"../animations/flippers\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype FlipDirection = \"horizontal\" | \"vertical\";\n\nexport interface FlipProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Axis direction of the animation.\n * @default undefined\n */\n direction?: FlipDirection;\n /**\n * Specifies if the animation should make element(s) disappear. It only has effect if a direction is specified.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: FlipDirection) {\n switch (direction) {\n case \"horizontal\":\n return reverse ? flipOutX : flipInX;\n case \"vertical\":\n return reverse ? flipOutY : flipInY;\n default:\n return flip;\n }\n}\n\nconst animationCss: CSSProperties = {\n backfaceVisibility: \"visible\",\n};\n\nexport const Flip: React.FC<FlipProps> = (props) => {\n const { direction, reverse = false, style, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flip.css}\n */\nexport const flip = keyframes`\n from {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n animation-timing-function: ease-out;\n }\n\n 40% {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n animation-timing-function: ease-out;\n }\n\n 50% {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n animation-timing-function: ease-in;\n }\n\n 80% {\n transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n animation-timing-function: ease-in;\n }\n\n to {\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n animation-timing-function: ease-in;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipInX.css}\n */\nexport const flipInX = keyframes`\n from {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n animation-timing-function: ease-in;\n }\n\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n to {\n transform: perspective(400px);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipInY.css}\n */\nexport const flipInY = keyframes`\n from {\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n animation-timing-function: ease-in;\n }\n\n 60% {\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n to {\n transform: perspective(400px);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipOutX.css}\n */\nexport const flipOutX = keyframes`\n from {\n transform: perspective(400px);\n }\n\n 30% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n to {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/flippers/flipOutY.css}\n */\nexport const flipOutY = keyframes`\n from {\n transform: perspective(400px);\n }\n\n 30% {\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n to {\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/hinge.css}\n */\nexport const hinge = keyframes`\n 0% {\n animation-timing-function: ease-in-out;\n }\n\n 20%,\n 60% {\n transform: rotate3d(0, 0, 1, 80deg);\n animation-timing-function: ease-in-out;\n }\n\n 40%,\n 80% {\n transform: rotate3d(0, 0, 1, 60deg);\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n to {\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/jackInTheBox.css}\n */\nexport const jackInTheBox = keyframes`\n from {\n opacity: 0;\n transform: scale(0.1) rotate(30deg);\n transform-origin: center bottom;\n }\n\n 50% {\n transform: rotate(-10deg);\n }\n\n 70% {\n transform: rotate(3deg);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/rollIn.css}\n */\nexport const rollIn = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/specials/rollOut.css}\n */\nexport const rollOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n`;\n","import type { CSSProperties } from \"react\";\n\nimport { hinge } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport type HingeProps = Omit<RevealProps, \"keyframes\">;\n\nconst animationCss: CSSProperties = {\n transformOrigin: \"top left\",\n};\n\nexport const Hinge: React.FC<HingeProps> = (props) => {\n const { style, ...rest } = props;\n\n return (\n <Reveal\n keyframes={hinge}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { jackInTheBox } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport type JackInTheBoxProps = Omit<RevealProps, \"keyframes\">;\n\nexport const JackInTheBox: React.FC<JackInTheBoxProps> = (props) => {\n return <Reveal keyframes={jackInTheBox} {...props} />;\n};\n","import { useMemo } from \"react\";\n\nimport { rollIn, rollOut } from \"../animations/specials\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\nexport interface RollProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean) {\n return reverse ? rollOut : rollIn;\n}\n\nexport const Roll: React.FC<RollProps> = (props) => {\n const { reverse = false, ...rest } = props;\n\n const keyframes = useMemo(() => getStyles(reverse), [reverse]);\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import type { Keyframes } from \"@emotion/serialize\";\nimport { type CSSProperties, useMemo } from \"react\";\n\nimport {\n rotateIn,\n rotateInDownLeft,\n rotateInDownRight,\n rotateInUpLeft,\n rotateInUpRight,\n} from \"../animations/rotating_entrances\";\nimport {\n rotateOut,\n rotateOutDownLeft,\n rotateOutDownRight,\n rotateOutUpLeft,\n rotateOutUpRight,\n} from \"../animations/rotating_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype RotateDirection =\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-left\"\n | \"top-right\";\n\nexport interface RotateProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: RotateDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(\n reverse: boolean,\n direction?: RotateDirection\n): [Keyframes, CSSProperties?] {\n switch (direction) {\n case \"bottom-left\":\n return reverse\n ? [rotateOutDownLeft, { transformOrigin: \"left bottom\" }]\n : [rotateInDownLeft, { transformOrigin: \"left bottom\" }];\n case \"bottom-right\":\n return reverse\n ? [rotateOutDownRight, { transformOrigin: \"right bottom\" }]\n : [rotateInDownRight, { transformOrigin: \"right bottom\" }];\n case \"top-left\":\n return reverse\n ? [rotateOutUpLeft, { transformOrigin: \"left bottom\" }]\n : [rotateInUpLeft, { transformOrigin: \"left bottom\" }];\n case \"top-right\":\n return reverse\n ? [rotateOutUpRight, { transformOrigin: \"right bottom\" }]\n : [rotateInUpRight, { transformOrigin: \"right bottom\" }];\n default:\n return reverse\n ? [rotateOut, { transformOrigin: \"center\" }]\n : [rotateIn, { transformOrigin: \"center\" }];\n }\n}\n\nexport const Rotate: React.FC<RotateProps> = (props) => {\n const { direction, reverse = false, style, ...rest } = props;\n\n const [keyframes, animationCss] = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return (\n <Reveal\n keyframes={keyframes}\n style={Object.assign({}, style, animationCss)}\n {...rest}\n />\n );\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateIn.css}\n */\nexport const rotateIn = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInDownLeft.css}\n */\nexport const rotateInDownLeft = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInDownRight.css}\n */\nexport const rotateInDownRight = keyframes`\n from {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInUpLeft.css}\n */\nexport const rotateInUpLeft = keyframes`\n from {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_entrances/rotateInUpRight.css}\n */\nexport const rotateInUpRight = keyframes`\n from {\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOut.css}\n */\nexport const rotateOut = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutDownLeft.css}\n */\nexport const rotateOutDownLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutDownRight.css}\n */\nexport const rotateOutDownRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutUpLeft.css}\n */\nexport const rotateOutUpLeft = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/rotating_exits/rotateOutUpRight.css}\n */\nexport const rotateOutUpRight = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n slideInDown,\n slideInLeft,\n slideInRight,\n slideInUp,\n} from \"../animations/sliding_entrances\";\nimport {\n slideOutDown,\n slideOutLeft,\n slideOutRight,\n slideOutUp,\n} from \"../animations/sliding_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype SlideDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface SlideProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: SlideDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: SlideDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? slideOutDown : slideInDown;\n case \"right\":\n return reverse ? slideOutRight : slideInRight;\n case \"up\":\n return reverse ? slideOutUp : slideInUp;\n case \"left\":\n default:\n return reverse ? slideOutLeft : slideInLeft;\n }\n}\n\nexport const Slide: React.FC<SlideProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInDown.css}\n */\nexport const slideInDown = keyframes`\n from {\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInLeft.css}\n */\nexport const slideInLeft = keyframes`\n from {\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInRight.css}\n */\nexport const slideInRight = keyframes`\n from {\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_entrances/slideInUp.css}\n */\nexport const slideInUp = keyframes`\n from {\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutDown.css}\n */\nexport const slideOutDown = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(0, 100%, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutLeft.css}\n */\nexport const slideOutLeft = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(-100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutRight.css}\n */\nexport const slideOutRight = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(100%, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/sliding_exits/slideOutUp.css}\n */\nexport const slideOutUp = keyframes`\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n transform: translate3d(0, -100%, 0);\n }\n`;\n","import { useMemo } from \"react\";\n\nimport {\n zoomIn,\n zoomInDown,\n zoomInLeft,\n zoomInRight,\n zoomInUp,\n} from \"../animations/zooming_entrances\";\nimport {\n zoomOut,\n zoomOutDown,\n zoomOutLeft,\n zoomOutRight,\n zoomOutUp,\n} from \"../animations/zooming_exits\";\nimport { type RevealProps, Reveal } from \"../Reveal\";\n\ntype ZoomDirection = \"down\" | \"left\" | \"right\" | \"up\";\n\nexport interface ZoomProps extends Omit<RevealProps, \"keyframes\"> {\n /**\n * Origin of the animation.\n * @default undefined\n */\n direction?: ZoomDirection;\n /**\n * Specifies if the animation should make element(s) disappear.\n * @default false\n */\n reverse?: boolean;\n}\n\nfunction getStyles(reverse: boolean, direction?: ZoomDirection) {\n switch (direction) {\n case \"down\":\n return reverse ? zoomOutDown : zoomInDown;\n case \"left\":\n return reverse ? zoomOutLeft : zoomInLeft;\n case \"right\":\n return reverse ? zoomOutRight : zoomInRight;\n case \"up\":\n return reverse ? zoomOutUp : zoomInUp;\n default:\n return reverse ? zoomOut : zoomIn;\n }\n}\n\nexport const Zoom: React.FC<ZoomProps> = (props) => {\n const { direction, reverse = false, ...rest } = props;\n\n const keyframes = useMemo(\n () => getStyles(reverse, direction),\n [direction, reverse]\n );\n\n return <Reveal keyframes={keyframes} {...rest} />;\n};\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomIn.css}\n */\nexport const zoomIn = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 50% {\n opacity: 1;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInDown.css}\n */\nexport const zoomInDown = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInLeft.css}\n */\nexport const zoomInLeft = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInRight.css}\n */\nexport const zoomInRight = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_entrances/zoomInUp.css}\n */\nexport const zoomInUp = keyframes`\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOut.css}\n */\nexport const zoomOut = keyframes`\n from {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n to {\n opacity: 0;\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutDown.css}\n */\nexport const zoomOutDown = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutLeft.css}\n */\nexport const zoomOutLeft = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: scale(0.1) translate3d(-2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutRight.css}\n */\nexport const zoomOutRight = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n\n to {\n opacity: 0;\n transform: scale(0.1) translate3d(2000px, 0, 0);\n }\n`;\n","import { keyframes } from \"@emotion/react\";\n\n/**\n * @see {@link https://github.com/animate-css/animate.css/blob/master/source/zooming_exits/zoomOutUp.css}\n */\nexport const zoomOutUp = keyframes`\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n`;\n"],"mappings":"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","names":["useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","keyframes","animationCss","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo","keyframes","keyframes","keyframes","keyframes","jsx","animationCss","jsx","useMemo","jsx","getStyles","keyframes","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","animationCss","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo","useMemo","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","keyframes","jsx","getStyles","keyframes","useMemo"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-awesome-reveal",
3
3
  "description": "React components to add reveal animations using the Intersection Observer API and CSS Animations.",
4
- "version": "4.2.0",
4
+ "version": "4.2.2",
5
5
  "license": "MIT",
6
6
  "source": "src/index.ts",
7
7
  "types": "dist/index.d.ts",