"use client"; import { memo, useRef } from "react"; import { useMotionValue } from "framer-motion"; import { LucideIcon } from "lucide-react"; import { CardPattern } from "@/components/background/CardPattern"; import { usePatternInteraction } from "./usePatternInteraction"; import { cls } from "@/lib/utils"; export interface FeatureHoverPatternItemData { icon: LucideIcon; title: string; description: string; } interface FeatureHoverPatternItemProps { item: FeatureHoverPatternItemData; index: number; className?: string; iconContainerClassName?: string; iconClassName?: string; titleClassName?: string; descriptionClassName?: string; gradientClassName?: string; shouldUseLightText?: boolean; } const FeatureHoverPatternItem = memo(function FeatureHoverPatternItem({ item, index, className = "", iconContainerClassName = "", iconClassName = "", titleClassName = "", descriptionClassName = "", gradientClassName = "", shouldUseLightText = false, }: FeatureHoverPatternItemProps) { const Icon = item.icon; const mouseX = useMotionValue(0); const mouseY = useMotionValue(0); const containerRef = useRef(null); const { state, onMouseMove } = usePatternInteraction( mouseX, mouseY, containerRef ); return (

{item.title}

{item.description}

); }); FeatureHoverPatternItem.displayName = "FeatureHoverPatternItem"; export default FeatureHoverPatternItem;