motion-v
Version:
<p align="center"> <img width="100" height="100" alt="Motion logo" src="https://user-images.githubusercontent.com/7850794/164965523-3eced4c4-6020-467e-acde-f11b7900ad62.png" /> </p> <h1 align="center">Motion for Vue</h1>
63 lines (60 loc) • 1.18 kB
JavaScript
import { defineNuxtModule, addComponent, addImports } from '@nuxt/kit';
const components = [
"Motion",
"AnimatePresence",
"LayoutGroup",
"MotionConfig",
"ReorderGroup",
"ReorderItem",
"M"
];
const utilities = [
"useTransform",
"useTime",
"useMotionTemplate",
"useSpring",
"useScroll",
"useMotionValue",
"useVelocity",
"useAnimate",
"useInView",
"useAnimationFrame",
"useMotionValueEvent",
"useLayoutGroup",
"useDragControls",
"useReducedMotion"
];
const index = defineNuxtModule({
meta: {
name: "motion-v",
configKey: "motionV",
compatibility: {
nuxt: ">=3.0.0"
}
},
defaults: {
prefix: "",
components: true,
utilities: true
},
setup(options, _nuxtApp) {
if (options.components) {
components.forEach((component) => {
addComponent({
name: `${options.prefix}${component}`,
export: component,
filePath: "motion-v"
});
});
}
if (options.utilities) {
utilities.forEach((utility) => {
addImports({
from: "motion-v",
name: utility
});
});
}
}
});
export { index as default };