@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
78 lines (74 loc) • 2.65 kB
JavaScript
"use client";
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
const require_create_component = require('../../core/components/create-component.cjs');
const require_factory = require('../motion/factory.cjs');
const require_transition = require('../motion/transition.cjs');
const require_fade_scale_style = require('./fade-scale.style.cjs');
let react = require("react");
react = require_rolldown_runtime.__toESM(react);
let react_jsx_runtime = require("react/jsx-runtime");
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
let motion_react = require("motion/react");
motion_react = require_rolldown_runtime.__toESM(motion_react);
//#region src/components/fade-scale/fade-scale.tsx
const fadeScaleVariants = {
enter: ({ delay, duration, enter, transition, transitionEnd } = {}) => ({
opacity: 1,
scale: 1,
transition: require_transition.createTransition.enter(transition?.enter)(delay, duration),
transitionEnd: transitionEnd?.enter,
...enter
}),
exit: ({ delay, duration, exit, reverse, scale, transition, transitionEnd } = {}) => ({
opacity: 0,
transition: require_transition.createTransition.exit(transition?.exit)(delay, duration),
...reverse ? {
scale,
transitionEnd: transitionEnd?.exit
} : { transitionEnd: {
scale,
...transitionEnd?.exit
} },
...exit
})
};
const { PropsContext: FadeScalePropsContext, usePropsContext: useFadeScalePropsContext, withContext } = require_create_component.createComponent("fade-scale", require_fade_scale_style.fadeScaleStyle);
/**
* `FadeScale` is a component that gradually scales up to reveal or scales down to hide an element.
*
* @see https://yamada-ui.com/docs/components/fade-scale
*/
const FadeScale = withContext(({ delay, duration, open: openProp, reverse = true, scale = .95, transition, transitionEnd, unmountOnExit,...rest }) => {
const animate = openProp || unmountOnExit ? "enter" : "exit";
const open = unmountOnExit ? openProp && unmountOnExit : true;
const custom = (0, react.useMemo)(() => ({
delay,
duration,
reverse,
scale,
transition,
transitionEnd
}), [
delay,
duration,
reverse,
scale,
transition,
transitionEnd
]);
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.AnimatePresence, {
custom,
children: open ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.motion.div, {
animate,
custom,
exit: "exit",
initial: "exit",
variants: fadeScaleVariants,
...rest
}) : null
});
})();
//#endregion
exports.FadeScale = FadeScale;
exports.fadeScaleVariants = fadeScaleVariants;
//# sourceMappingURL=fade-scale.cjs.map