@gfazioli/mantine-text-animate
Version:
The TextAnimate component allows you to animate text with various effects.
92 lines (88 loc) • 1.88 kB
JavaScript
'use client';
;
var core = require('@mantine/core');
var React = require('react');
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) => {
const props = core.useProps("NumberTicker", defaultProps, _props);
const {
value,
startValue,
delay,
decimalPlaces,
speed,
easing,
animate,
onCompleted,
formatValue,
prefix,
suffix,
classNames,
style,
styles,
unstyled,
vars,
className,
...others
} = props;
const { text } = useNumberTicker.useNumberTicker({
value,
startValue,
delay,
decimalPlaces,
speed,
easing,
animate,
onCompleted,
formatValue
});
const getStyles = core.useStyles({
name: "NumberTicker",
props,
classes: NumberTicker_module,
className,
style,
classNames,
styles,
unstyled,
vars,
varsResolver
});
return /* @__PURE__ */ React.createElement(
core.Box,
{
...getStyles("root", {
style: {
display: "inline-block",
fontVariantNumeric: "tabular-nums",
letterSpacing: "0.05em"
}
}),
component: "p",
"aria-live": "polite",
...others
},
prefix,
text,
suffix
);
});
NumberTicker.classes = NumberTicker_module;
NumberTicker.displayName = "NumberTicker";
exports.NumberTicker = NumberTicker;
//# sourceMappingURL=NumberTicker.cjs.map