"use client"; import { motion } from "framer-motion"; import { Search, Link2, Layers, FileText, Youtube, Newspaper } from "lucide-react"; import { CachyGlyph } from "@/components/brand/Logo"; import { EASE_OUT, VIEWPORT } from "@/lib/motion"; const frame = "relative aspect-[4/3] w-full overflow-hidden rounded-4xl border border-ink/10 bg-raised shadow-soft grain"; /** Distinct visual per feature — no repeated card grid. */ export function FeatureVisual({ variant }: { variant: string }) { if (variant === "send") return ; if (variant === "search") return ; if (variant === "connect") return ; return ; } function SendVisual() { const chips = [ { icon: FileText, label: "PDF" }, { icon: Youtube, label: "YouTube" }, { icon: Newspaper, label: "Article" }, ]; return (
{chips.map((c, i) => ( {c.label} ))}
); } function SearchVisual() { return (
that pasta trick I saw once
{["Cacio e pepe, no cream", "Salt the water like the sea"].map( (r, i) => ( {r} ), )}
); } function ConnectVisual() { const nodes = [ { x: 28, y: 32 }, { x: 72, y: 26 }, { x: 50, y: 58 }, { x: 24, y: 74 }, { x: 78, y: 70 }, ]; const edges = [ [0, 2], [1, 2], [2, 3], [2, 4], ]; return (
{edges.map(([a, b], i) => ( ))} {nodes.map((n, i) => ( ))}
); } function KeepVisual() { return (
{[0, 1, 2].map((k) => (
))}
); }