"use client"; import Link from "next/link"; import { type CSSProperties, Fragment } from "react"; import { trackEmailClick, trackSocialClick } from "@/lib/analytics"; import { CONTACT_EMAIL, LINKEDIN_URL } from "@/lib/site-navigation"; import { HOME_SUBJECT } from "@/lib/whatsapp"; import ClientStrip, { type ClientLink } from "./ClientStrip"; import HeroField from "./cinematic/HeroField"; import { HERO_CTA_ID } from "./FloatingWhatsApp"; import HeroWork, { type HeroWorkUrl } from "./HeroWork"; import WhatsAppLink from "./WhatsAppLink"; const SOCIAL_LINKS = [ { href: LINKEDIN_URL, label: "LinkedIn", onClick: () => trackSocialClick({ network: "linkedin" }), }, { href: `mailto:${CONTACT_EMAIL}`, label: "Email", onClick: () => trackEmailClick({ placement: "hero" }), }, ]; /** * Números reais, calculados em app/page.tsx (nada digitado à mão): os anos vêm de public/portfolio-data.json * e aparecem na mesma linha de "Já entregue para" (ClientStrip). */ export type HeroStats = { years?: number; }; /** O destaque em limão fica num trecho curto: "pedidos pelo WhatsApp" (palavras 5 a 7). */ const ACCENT = new Set([5, 6, 7]); /** Título em palavras para a entrada em cascata; o texto segue inteiro para leitores de tela e buscadores. */ const TITLE = "Sites e sistemas que trazem pedidos pelo WhatsApp e tiram sua operação da planilha." .split(" ") .map((word, index) => ({ word, // a mesma palavra se repete ("e"), então a posição entra na chave key: `${word}-${index}`, accent: ACCENT.has(index), })); /** O que cada camada da cena significa, em linguagem simples. */ const CAPTIONS = [ ["A tela", "O que sua equipe e seus clientes usam no dia a dia."], [ "As integrações", "Os programas que você já usa conversando entre si, sem retrabalho.", ], ["Os dados", "Suas informações guardadas, organizadas e seguras."], ] as const; export default function Hero({ stats, clients, workUrl, }: { stats?: HeroStats; clients?: ClientLink[]; /** Endereço mostrado na barra do navegador de HeroWork (o domínio próprio do site da SEV Moda Íntima). */ workUrl?: HeroWorkUrl; }) { return (
); }