"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}
);
}
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.
Explore icons
{/* Give us money */}
);
}