import { ArrowUpRight, Github, Download, Layers, Package } from "lucide-react"; import Link from "next/link"; import { TRADEMARK_POLICY_URL } from "@/lib/constants"; import { getIconCount, getVariantCount, getCollections, } from "@/lib/icons"; import { AnimatedCounter } from "@/components/footer-counter"; interface FooterLink { label: string; href: string; external?: boolean; } const PRODUCT_LINKS: FooterLink[] = [ { label: "Browse Icons", href: "/" }, { label: "Categories", href: "/categories" }, { label: "Extensions", href: "/extensions" }, { label: "Submit Icon", href: "/submit" }, ]; const RESOURCE_LINKS: FooterLink[] = [ { label: "Figma Plugin", href: "https://www.figma.com/community/plugin/1612997159050367763", external: true }, { label: "VS Code Extension", href: "https://marketplace.visualstudio.com/items?itemName=glincker.thesvg", external: true }, { label: "Raycast Extension", href: "https://www.raycast.com/thegdsks/thesvg", external: true }, { label: "npm Package", href: "https://www.npmjs.com/package/thesvg", external: true }, { label: "CDN Usage", href: "/extensions" }, { label: "Compare", href: "/compare" }, ]; const COMMUNITY_LINKS: FooterLink[] = [ { label: "GitHub", href: "https://github.com/GLINCKER/thesvg", external: true }, { label: "Issues", href: "https://github.com/GLINCKER/thesvg/issues", external: true }, { label: "Discussions", href: "https://github.com/GLINCKER/thesvg/discussions", external: true }, { label: "Contributing", href: "https://github.com/GLINCKER/thesvg/blob/main/CONTRIBUTING.md", external: true }, { label: "Meet the founder", href: "https://thegdsks.com", external: true }, ]; const LEGAL_LINKS: FooterLink[] = [ { label: "Legal", href: "/legal" }, { label: "Trademark Policy", href: TRADEMARK_POLICY_URL, external: true }, { label: "Contact", href: "/contact" }, ]; function FooterLinkItem({ link }: { link: FooterLink }) { if (link.external) { return ( {link.label} ); } return ( {link.label} ); } function FooterColumn({ title, links }: { title: string; links: FooterLink[] }) { return (

{title}

); } function StatItem({ icon, value, label, }: { icon: React.ReactNode; value: number; label: string; }) { return (
{icon}

{label}

); } export function Footer() { const iconCount = getIconCount(); const variantCount = getVariantCount(); const collectionCount = getCollections().length; return ( ); }