"use client" import { Button } from "@/components/ui/button" import { Card } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { cn } from "@/lib/utils" import { motion, useAnimation, useInView } from "framer-motion" import { DollarSign, Heart, Search, Star } from "lucide-react" import Link from "next/link" import { useEffect, useRef, useState } from "react" import { AuroraText } from "./magicui/aurora-text" import { InteractiveHoverButton } from "./magicui/interactive-hover-button" interface IconCardProps { name: string imageUrl: string } function IconCard({ name, imageUrl }: IconCardProps) { return (
{name}

{name}

) } function ElegantShape({ className, delay = 0, width = 400, height = 100, rotate = 0, gradient = "from-rose-500/[0.5]", mobileWidth, mobileHeight, }: { className?: string delay?: number width?: number height?: number rotate?: number gradient?: string mobileWidth?: number mobileHeight?: number }) { const controls = useAnimation() const [isMobile, setIsMobile] = useState(false) const ref = useRef(null) const isInView = useInView(ref, { once: true, amount: 0.1 }) useEffect(() => { const checkMobile = () => { setIsMobile(window.innerWidth < 768) } checkMobile() window.addEventListener("resize", checkMobile) return () => window.removeEventListener("resize", checkMobile) }, []) useEffect(() => { if (isInView) { controls.start({ opacity: 1, y: 0, rotate: rotate, transition: { type: "spring", stiffness: 50, damping: 20, duration: 1.8, delay, ease: [0.23, 0.86, 0.39, 0.96], opacity: { duration: 1.2 }, }, }) } }, [controls, delay, isInView, rotate]) return (
) } export function HeroSection({ totalIcons, stars }: { totalIcons: number; stars: number }) { const [searchQuery, setSearchQuery] = useState("") return (
Made with love by Homarr Labs

Your definitive source for
dashboard icons

A collection of {totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.

setSearchQuery(e.target.value)} />
Explore icons {/* Give us money */}
) }