Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 297x 32694x 33x 33x 78x 701x 701x 14x 687x | import { MotionProps } from "../types" import { FeatureComponents, LoadedFeatures } from "./types" const createDefinition = (propNames: string[]) => ({ isEnabled: (props: MotionProps) => propNames.some((name) => !!props[name]), }) export const featureDefinitions: LoadedFeatures = { measureLayout: createDefinition(["layout", "layoutId", "drag"]), animation: createDefinition([ "animate", "exit", "variants", "whileHover", "whileTap", "whileFocus", "whileDrag", "whileInView", ]), exit: createDefinition(["exit"]), drag: createDefinition(["drag", "dragControls"]), focus: createDefinition(["whileFocus"]), hover: createDefinition(["whileHover", "onHoverStart", "onHoverEnd"]), tap: createDefinition(["whileTap", "onTap", "onTapStart", "onTapCancel"]), pan: createDefinition([ "onPan", "onPanStart", "onPanSessionStart", "onPanEnd", ]), inView: createDefinition([ "whileInView", "onViewportEnter", "onViewportLeave", ]), } export function loadFeatures(features: FeatureComponents) { for (const key in features) { Iif (features[key] === null) continue if (key === "projectionNodeConstructor") { featureDefinitions.projectionNodeConstructor = features[key] } else { featureDefinitions[key].Component = features[key] } } } |