@gfazioli/mantine-text-animate
Version:
The TextAnimate component allows you to animate text with various effects.
85 lines (81 loc) • 1.74 kB
JavaScript
'use client';
;
var React = require('react');
var core = require('@mantine/core');
var useNumberTicker = require('./use-number-ticker.cjs');
var NumberTicker_module = require('./NumberTicker.module.css.cjs');
const defaultProps = {
startValue: 0,
delay: 0,
decimalPlaces: 0,
speed: 1,
easing: "ease-out",
animate: true
};
const varsResolver = core.createVarsResolver((_, { delay, speed }) => ({
root: {
"--number-ticker-animation-duration": `${1 / (speed || 1)}s`,
"--number-ticker-animation-delay": `${delay || 0}s`
}
}));
const NumberTicker = core.polymorphicFactory((_props, ref) => {
const props = core.useProps("NumberTicker", defaultProps, _props);
const {
value,
startValue,
delay,
decimalPlaces,
speed,
easing,
animate,
onCompleted,
classNames,
style,
styles,
unstyled,
vars,
className,
...others
} = props;
const { text } = useNumberTicker.useNumberTicker({
value,
startValue,
delay,
decimalPlaces,
speed,
easing,
animate,
onCompleted
});
const getStyles = core.useStyles({
name: "NumberTicker",
props,
classes: NumberTicker_module,
className,
style,
classNames,
styles,
unstyled,
vars,
varsResolver
});
return /* @__PURE__ */ React.createElement(
core.Box,
{
ref,
...getStyles("root", {
style: {
display: "inline-block",
fontVariantNumeric: "tabular-nums",
letterSpacing: "wider"
}
}),
component: "p",
...others
},
text
);
});
NumberTicker.displayName = "NumberTicker";
exports.NumberTicker = NumberTicker;
//# sourceMappingURL=NumberTicker.cjs.map