2026-04-09 14:12:44 +01:00
|
|
|
"use client"; // Necessário para animações no Next.js App Router
|
|
|
|
|
|
2026-04-05 13:14:15 +01:00
|
|
|
import Image from "next/image";
|
|
|
|
|
import Link from "next/link";
|
2026-04-09 14:12:44 +01:00
|
|
|
import { motion } from "framer-motion";
|
2026-04-05 13:14:15 +01:00
|
|
|
|
|
|
|
|
const recentes = [
|
|
|
|
|
{
|
2026-04-15 09:58:11 +01:00
|
|
|
title: "Diddy na XB Label? Gerilson Israel responde após anúncio de nova música em conjunto",
|
2026-04-05 13:14:15 +01:00
|
|
|
excerpt: "O artista angolano esclareceu os rumores sobre a sua possível entrada para a editora internacional...",
|
|
|
|
|
cat: "Música",
|
|
|
|
|
catBg: "bg-blue-50 text-blue-600",
|
|
|
|
|
byline: "Por Redação",
|
|
|
|
|
date: "04 Mar 2026",
|
2026-04-05 14:25:03 +01:00
|
|
|
// Premium Studio Image
|
|
|
|
|
img: "https://images.unsplash.com/photo-1598488035139-bdbb2231ce04?q=80&w=800&auto=format&fit=crop",
|
2026-04-05 13:14:15 +01:00
|
|
|
},
|
|
|
|
|
{
|
2026-04-15 09:58:11 +01:00
|
|
|
title: "Inflação desce pelo terceiro mês consecutivo em Angola, segundo dados preliminares.,",
|
2026-04-05 13:14:15 +01:00
|
|
|
excerpt: "Os preços dos bens de consumo registaram uma ligeira queda, trazendo alívio para as famílias...",
|
|
|
|
|
cat: "Economia",
|
|
|
|
|
catBg: "bg-green-50 text-green-600",
|
|
|
|
|
byline: "Por Economia Viva",
|
|
|
|
|
date: "03 Mar 2026",
|
2026-04-05 14:25:03 +01:00
|
|
|
// Modern Finance/City Image
|
|
|
|
|
img: "https://images.unsplash.com/photo-1526304640581-d334cdbbf45e?q=80&w=800&auto=format&fit=crop",
|
2026-04-05 13:14:15 +01:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "Museu de Luanda inaugura exposição com obras inéditas de artistas locais.",
|
|
|
|
|
excerpt: "A mostra reúne pinturas e esculturas que retratam a evolução urbana da capital angolana...",
|
|
|
|
|
cat: "Cultura",
|
|
|
|
|
catBg: "bg-purple-50 text-purple-600",
|
|
|
|
|
byline: "Por Cultura Mais",
|
|
|
|
|
date: "02 Mar 2026",
|
2026-04-05 14:25:03 +01:00
|
|
|
// Elegant Art Gallery Image
|
|
|
|
|
img: "https://images.unsplash.com/photo-1507676184212-d03ab07a01bf?q=80&w=800&auto=format&fit=crop",
|
2026-04-05 13:14:15 +01:00
|
|
|
},
|
2026-04-05 14:25:03 +01:00
|
|
|
{
|
2026-04-15 09:58:11 +01:00
|
|
|
title: "Diddy na XB Label? Gerilson Israel responde após anúncio de nova música em conjunto,",
|
2026-04-05 14:25:03 +01:00
|
|
|
excerpt: "O artista angolano esclareceu os rumores sobre a sua possível entrada para a editora internacional...",
|
|
|
|
|
cat: "Música",
|
|
|
|
|
catBg: "bg-blue-50 text-blue-600",
|
|
|
|
|
byline: "Por Redação",
|
|
|
|
|
date: "04 Mar 2026",
|
|
|
|
|
// Premium Studio Image
|
|
|
|
|
img: "https://images.unsplash.com/photo-1598488035139-bdbb2231ce04?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "Inflação desce pelo terceiro mês consecutivo em Angola, segundo dados preliminares.",
|
|
|
|
|
excerpt: "Os preços dos bens de consumo registaram uma ligeira queda, trazendo alívio para as famílias...",
|
|
|
|
|
cat: "Economia",
|
|
|
|
|
catBg: "bg-green-50 text-green-600",
|
|
|
|
|
byline: "Por Economia Viva",
|
|
|
|
|
date: "03 Mar 2026",
|
|
|
|
|
// Modern Finance/City Image
|
|
|
|
|
img: "https://images.unsplash.com/photo-1526304640581-d334cdbbf45e?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
2026-04-15 09:58:11 +01:00
|
|
|
title: "Inflação desce pelo terceiro mês consecutivo em Angola, segundo dados preliminares",
|
2026-04-05 14:25:03 +01:00
|
|
|
excerpt: "Os preços dos bens de consumo registaram uma ligeira queda, trazendo alívio para as famílias...",
|
|
|
|
|
cat: "Economia",
|
|
|
|
|
catBg: "bg-green-50 text-green-600",
|
|
|
|
|
byline: "Por Economia Viva",
|
|
|
|
|
date: "03 Mar 2026",
|
|
|
|
|
// Modern Finance/City Image
|
|
|
|
|
img: "https://images.unsplash.com/photo-1526304640581-d334cdbbf45e?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
2026-04-05 13:14:15 +01:00
|
|
|
];
|
|
|
|
|
const aSeguir = [
|
|
|
|
|
{
|
|
|
|
|
title: "Mercado imobiliário: especialistas explicam tendências para 2026.",
|
|
|
|
|
date: "Há 2 horas",
|
|
|
|
|
img: "https://images.unsplash.com/photo-1560518883-ce09059eeffa?w=200&q=80",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "Cinema: estreias nacionais batem recordes de bilheteira no fim de semana.",
|
|
|
|
|
date: "Há 5 horas",
|
|
|
|
|
img: "https://images.unsplash.com/photo-1485846234645-a62644f84728?w=200&q=80",
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
export function TvoneMainColumns1() {
|
|
|
|
|
return (
|
2026-04-09 13:20:10 +01:00
|
|
|
<div className="mx-auto grid w-full max-w-[1200px] gap-10 px-4 pb-20 ">
|
|
|
|
|
<section>
|
2026-04-09 12:02:14 +01:00
|
|
|
{/* Cabeçalho Minimalista com Link Azul */}
|
|
|
|
|
<div className="mb-10 flex items-end justify-between border-b border-neutral-100 pb-6">
|
|
|
|
|
<h2 className="text-3xl font-bold tracking-tight text-neutral-900 md:text-4xl">
|
|
|
|
|
Vídeos Recentes
|
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
<Link
|
|
|
|
|
href="/negocios"
|
|
|
|
|
className="group flex items-center gap-1 text-sm font-semibold text-[#0066CC] transition-colors hover:text-[#004499]"
|
|
|
|
|
>
|
|
|
|
|
Ver tudo
|
|
|
|
|
<svg
|
|
|
|
|
className="h-4 w-4 transition-transform group-hover:translate-x-0.5"
|
|
|
|
|
fill="none"
|
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
|
stroke="currentColor"
|
|
|
|
|
strokeWidth={2.5}
|
|
|
|
|
>
|
|
|
|
|
<path strokeLinecap="round" strokeLinejoin="round" d="M9 5l7 7-7 7" />
|
|
|
|
|
</svg>
|
|
|
|
|
</Link>
|
|
|
|
|
</div>
|
2026-04-06 09:43:32 +01:00
|
|
|
<div className="mx-auto flex w-full max-w-[1200px] flex-col gap-10">
|
2026-04-05 14:25:03 +01:00
|
|
|
|
2026-04-05 13:14:15 +01:00
|
|
|
|
2026-04-05 14:25:03 +01:00
|
|
|
{/* SECTION: PREMIUM VIDEO GALLERY (Euronews + iOS Style) */}
|
|
|
|
|
<section className="grid w-full gap-6 lg:grid-cols-[1fr_340px]">
|
|
|
|
|
{/* Main Player Area */}
|
2026-04-11 00:21:57 +01:00
|
|
|
<div className="group relative aspect-video overflow-hidden rounded-2xl bg-black shadow-2xl">
|
2026-04-05 14:25:03 +01:00
|
|
|
<Image
|
|
|
|
|
src="https://images.unsplash.com/photo-1504711434969-e33886168f5c?q=80&w=1200&auto=format&fit=crop"
|
|
|
|
|
alt="Main Video"
|
|
|
|
|
fill
|
|
|
|
|
className="object-cover opacity-90 transition-transform duration-700 group-hover:scale-105"
|
|
|
|
|
/>
|
|
|
|
|
{/* iOS Play Button Overlay */}
|
|
|
|
|
<div className="absolute inset-0 flex items-center justify-center">
|
|
|
|
|
<div className="flex h-20 w-20 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur-md transition-transform group-hover:scale-110">
|
|
|
|
|
<div className="ml-1 h-0 w-0 border-y-[12px] border-l-[20px] border-y-transparent border-l-white" />
|
2026-04-05 13:14:15 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2026-04-05 14:25:03 +01:00
|
|
|
{/* Video Info Overlay */}
|
|
|
|
|
<div className="absolute bottom-0 left-0 w-full bg-gradient-to-t from-black/80 p-8">
|
|
|
|
|
<span className="rounded bg-blue-600 px-2 py-1 text-[10px] font-bold uppercase text-white">Música</span>
|
|
|
|
|
<h2 className="mt-3 text-2xl font-bold text-white md:text-3xl">
|
|
|
|
|
Diddy na XB Label? Gerilson Israel responde após anúncio...
|
|
|
|
|
</h2>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* Right Playlist: "Vídeos a Seguir" */}
|
2026-04-11 00:21:57 +01:00
|
|
|
<aside className="flex flex-col rounded-2xl border border-neutral-200 bg-[#f5f5f7]/50 p-4 backdrop-blur-sm">
|
2026-04-05 14:25:03 +01:00
|
|
|
<h3 className="mb-4 px-2 text-xs font-bold uppercase tracking-widest text-neutral-500">Vídeos a Seguir</h3>
|
|
|
|
|
<div className="flex flex-col gap-3 overflow-y-auto lg:max-h-[380px]">
|
|
|
|
|
{recentes.slice(0, 6).map((item) => (
|
2026-04-11 00:21:57 +01:00
|
|
|
<button key={item.title} className="group flex gap-3 rounded-2xl p-2 transition hover:bg-white hover:shadow-sm">
|
2026-04-05 14:25:03 +01:00
|
|
|
<div className="relative aspect-video w-24 shrink-0 overflow-hidden rounded-lg bg-neutral-200">
|
|
|
|
|
<Image src={item.img} alt="" fill className="object-cover" />
|
|
|
|
|
<div className="absolute bottom-1 right-1 rounded bg-black/60 px-1 text-[9px] text-white">3:15</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="text-left">
|
|
|
|
|
<span className="text-[9px] font-bold uppercase text-blue-600">{item.cat}</span>
|
|
|
|
|
<h4 className="line-clamp-2 text-xs font-bold leading-tight text-neutral-900 group-hover:text-blue-600">
|
|
|
|
|
{item.title}
|
|
|
|
|
</h4>
|
|
|
|
|
</div>
|
|
|
|
|
</button>
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
</aside>
|
|
|
|
|
</section>
|
2026-04-05 13:14:15 +01:00
|
|
|
|
|
|
|
|
|
2026-04-05 14:25:03 +01:00
|
|
|
</div>
|
|
|
|
|
</section>
|
2026-04-05 13:14:15 +01:00
|
|
|
</div>
|
2026-04-05 14:25:03 +01:00
|
|
|
|
2026-04-05 13:14:15 +01:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function AppleIcon({ className }: { className?: string }) {
|
|
|
|
|
return (
|
|
|
|
|
<svg className={className} viewBox="0 0 24 24" fill="currentColor">
|
|
|
|
|
<path d="M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z" />
|
|
|
|
|
</svg>
|
|
|
|
|
);
|
2026-04-09 12:02:14 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const entrevistas = [
|
|
|
|
|
{
|
|
|
|
|
guest: "CEO da Unitel",
|
|
|
|
|
title: "O futuro do 5G em Angola e a expansão da conectividade rural",
|
|
|
|
|
img: "https://images.unsplash.com/photo-1560250097-0b93528c311a?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
guest: "Sandra Rodrigues",
|
|
|
|
|
title: "Como a inteligência artificial está a mudar o jornalismo digital",
|
|
|
|
|
img: "https://images.unsplash.com/photo-1573496359142-b8d87734a5a2?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
guest: "Fundador da Startup X",
|
|
|
|
|
title: "O desafio de escalar uma fintech no mercado africano atual",
|
|
|
|
|
img: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const negocios = [
|
|
|
|
|
{
|
|
|
|
|
category: "Investimento",
|
|
|
|
|
title: "Banca nacional regista crescimento de 15% no crédito à produção",
|
|
|
|
|
description: "Novas medidas de estímulo económico impulsionam o setor agrícola e industrial neste trimestre.",
|
|
|
|
|
readTime: "5",
|
2026-04-09 13:37:43 +01:00
|
|
|
publishDate: "08 ABR 2026",
|
2026-04-09 12:02:14 +01:00
|
|
|
img: "https://images.unsplash.com/photo-1460925895917-afdab827c52f?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
category: "Tecnologia",
|
|
|
|
|
title: "Hub tecnológico em Luanda atrai investidores estrangeiros",
|
|
|
|
|
description: "Empresas de capital de risco olham para o ecossistema de startups angolano com novo otimismo.",
|
|
|
|
|
readTime: "4",
|
2026-04-09 13:37:43 +01:00
|
|
|
publishDate: "08 ABR 2026",
|
2026-04-09 12:02:14 +01:00
|
|
|
img: "https://images.unsplash.com/photo-1559136555-9303baea8ebd?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
category: "Mercados",
|
|
|
|
|
title: "Preço das commodities: O impacto direto na inflação local",
|
|
|
|
|
description: "Análise profunda sobre como a volatilidade externa está a moldar os preços no consumidor final.",
|
|
|
|
|
readTime: "7",
|
2026-04-09 13:37:43 +01:00
|
|
|
publishDate: "08 ABR 2026",
|
2026-04-09 12:02:14 +01:00
|
|
|
img: "https://images.unsplash.com/photo-1590283603385-17ffb3a7f29f?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
];
|
2026-04-09 13:20:10 +01:00
|
|
|
const editorChoice = [
|
|
|
|
|
{
|
|
|
|
|
category: "Exclusivo",
|
|
|
|
|
title: "O renascimento da arquitetura moderna em Luanda: Equilíbrio entre história e inovação",
|
|
|
|
|
description: "Um olhar detalhado sobre como os novos projetos urbanos estão a redefinir a linha do horizonte da capital.",
|
|
|
|
|
readTime: "8",
|
|
|
|
|
publishDate: "09 ABR 2026", // Data fixa para artigos de fundo
|
|
|
|
|
img: "https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
category: "Cultura",
|
|
|
|
|
title: "Documentário premiado explora as raízes rítmicas do interior de Angola",
|
|
|
|
|
description: "A jornada cinematográfica que capturou sons ancestrais antes que desaparecessem no tempo.",
|
|
|
|
|
readTime: "6",
|
|
|
|
|
publishDate: "Há 3 horas", // Tempo relativo para notícias quentes
|
|
|
|
|
img: "https://images.unsplash.com/photo-1516280440614-37939bbacd81?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
category: "Estilo de Vida",
|
|
|
|
|
title: "Gastronomia sustentável: O novo movimento que está a conquistar os chefs locais",
|
|
|
|
|
description: "Como a utilização de produtos sazonais e produtores regionais está a mudar o menu dos melhores restaurantes.",
|
|
|
|
|
readTime: "5",
|
|
|
|
|
publishDate: "08 ABR 2026",
|
|
|
|
|
img: "https://images.unsplash.com/photo-1504674900247-0877df9cc836?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
2026-04-09 13:37:43 +01:00
|
|
|
{
|
|
|
|
|
category: "Exclusivo",
|
|
|
|
|
title: "O renascimento da arquitetura moderna em Luanda: Equilíbrio entre história e inovação",
|
|
|
|
|
description: "Um olhar detalhado sobre como os novos projetos urbanos estão a redefinir a linha do horizonte da capital.",
|
|
|
|
|
readTime: "8",
|
|
|
|
|
publishDate: "09 ABR 2026", // Data fixa para artigos de fundo
|
|
|
|
|
img: "https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
category: "Cultura",
|
|
|
|
|
title: "Documentário premiado explora as raízes rítmicas do interior de Angola",
|
|
|
|
|
description: "A jornada cinematográfica que capturou sons ancestrais antes que desaparecessem no tempo.",
|
|
|
|
|
readTime: "6",
|
|
|
|
|
publishDate: "Há 3 horas", // Tempo relativo para notícias quentes
|
|
|
|
|
img: "https://images.unsplash.com/photo-1516280440614-37939bbacd81?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
category: "Estilo de Vida",
|
|
|
|
|
title: "Gastronomia sustentável: O novo movimento que está a conquistar os chefs locais",
|
|
|
|
|
description: "Como a utilização de produtos sazonais e produtores regionais está a mudar o menu dos melhores restaurantes.",
|
|
|
|
|
readTime: "5",
|
|
|
|
|
publishDate: "08 ABR 2026",
|
|
|
|
|
img: "https://images.unsplash.com/photo-1504674900247-0877df9cc836?q=80&w=800&auto=format&fit=crop",
|
|
|
|
|
},
|
2026-04-09 13:20:10 +01:00
|
|
|
];
|
2026-04-09 12:02:14 +01:00
|
|
|
export function TvoneEntrevistas() {
|
|
|
|
|
return (
|
|
|
|
|
<section className="mx-auto w-full max-w-[1200px] px-4 pb-20">
|
2026-04-09 13:20:10 +01:00
|
|
|
{/* Cabeçalho com Título, Descrição e Link Azul */}
|
|
|
|
|
<div className="mb-10 flex items-end justify-between border-b border-neutral-100 pb-6">
|
|
|
|
|
<div className="max-w-[600px]">
|
|
|
|
|
<h2 className="text-3xl font-bold tracking-tight text-neutral-900 md:text-4xl">
|
|
|
|
|
Entrevistas
|
|
|
|
|
</h2>
|
|
|
|
|
<p className="mt-2 text-sm md:text-base text-neutral-500 leading-relaxed">
|
|
|
|
|
Conversas exclusivas com as personalidades que movem o mercado, a tecnologia e a cultura em Angola.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<Link
|
|
|
|
|
href="/entrevistas"
|
|
|
|
|
className="group flex items-center gap-1 text-sm font-semibold text-[#0066CC] transition-colors hover:text-[#004499] whitespace-nowrap mb-1"
|
|
|
|
|
>
|
|
|
|
|
Ver tudo
|
|
|
|
|
<svg
|
|
|
|
|
className="h-4 w-4 transition-transform group-hover:translate-x-0.5"
|
|
|
|
|
fill="none"
|
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
|
stroke="currentColor"
|
|
|
|
|
strokeWidth={2.5}
|
|
|
|
|
>
|
|
|
|
|
<path strokeLinecap="round" strokeLinejoin="round" d="M9 5l7 7-7 7" />
|
|
|
|
|
</svg>
|
|
|
|
|
</Link>
|
2026-04-09 12:02:14 +01:00
|
|
|
</div>
|
|
|
|
|
|
2026-04-09 13:20:10 +01:00
|
|
|
{/* Grid de Cards */}
|
2026-04-09 12:02:14 +01:00
|
|
|
<div className="grid gap-8 sm:grid-cols-2 lg:grid-cols-3">
|
|
|
|
|
{entrevistas.map((item, index) => (
|
|
|
|
|
<article key={index} className="group cursor-pointer">
|
|
|
|
|
<Link href="#" className="block">
|
2026-04-11 00:09:18 +01:00
|
|
|
<div className="relative aspect-[4/5] overflow-hidden rounded-2xl bg-neutral-100 shadow-sm transition-all duration-500 group-hover:shadow-2xl group-hover:shadow-neutral-300">
|
2026-04-09 12:02:14 +01:00
|
|
|
<Image
|
|
|
|
|
src={item.img}
|
|
|
|
|
alt={item.title}
|
|
|
|
|
fill
|
|
|
|
|
className="object-cover transition duration-700 group-hover:scale-105"
|
|
|
|
|
/>
|
2026-04-09 13:20:10 +01:00
|
|
|
<div className="absolute inset-0 bg-gradient-to-t from-black/95 via-black/20 to-transparent opacity-90 transition-opacity duration-500 group-hover:opacity-100" />
|
2026-04-09 12:02:14 +01:00
|
|
|
|
|
|
|
|
<div className="absolute bottom-0 p-8">
|
2026-04-09 13:20:10 +01:00
|
|
|
<span className="text-[10px] font-bold uppercase tracking-[0.15em] text-blue-400">
|
|
|
|
|
{item.guest}
|
|
|
|
|
</span>
|
|
|
|
|
<h3 className="mt-3 text-xl font-bold leading-tight text-white md:text-2xl">
|
2026-04-09 12:02:14 +01:00
|
|
|
"{item.title}"
|
|
|
|
|
</h3>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</Link>
|
|
|
|
|
</article>
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function TvoneNegocios() {
|
|
|
|
|
return (
|
|
|
|
|
<section className="mx-auto w-full max-w-[1200px] px-4 pb-20">
|
|
|
|
|
{/* Cabeçalho Minimalista com Link Azul */}
|
|
|
|
|
<div className="mb-10 flex items-end justify-between border-b border-neutral-100 pb-6">
|
|
|
|
|
<h2 className="text-3xl font-bold tracking-tight text-neutral-900 md:text-4xl">
|
|
|
|
|
Negócios
|
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
<Link
|
|
|
|
|
href="/negocios"
|
|
|
|
|
className="group flex items-center gap-1 text-sm font-semibold text-[#0066CC] transition-colors hover:text-[#004499]"
|
|
|
|
|
>
|
|
|
|
|
Ver tudo
|
|
|
|
|
<svg
|
|
|
|
|
className="h-4 w-4 transition-transform group-hover:translate-x-0.5"
|
|
|
|
|
fill="none"
|
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
|
stroke="currentColor"
|
|
|
|
|
strokeWidth={2.5}
|
|
|
|
|
>
|
|
|
|
|
<path strokeLinecap="round" strokeLinejoin="round" d="M9 5l7 7-7 7" />
|
|
|
|
|
</svg>
|
|
|
|
|
</Link>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className="grid gap-10 lg:grid-cols-3">
|
|
|
|
|
{negocios.map((item, index) => (
|
|
|
|
|
<article key={index} className="group flex flex-col gap-5">
|
2026-04-11 00:21:57 +01:00
|
|
|
<div className="relative aspect-video overflow-hidden rounded-2xl bg-neutral-100 shadow-sm transition-all duration-500 group-hover:shadow-md">
|
2026-04-09 12:02:14 +01:00
|
|
|
<Image
|
|
|
|
|
src={item.img}
|
|
|
|
|
alt=""
|
|
|
|
|
fill
|
|
|
|
|
className="object-cover transition-transform duration-700 group-hover:scale-105"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className="px-1">
|
2026-04-09 13:37:43 +01:00
|
|
|
<div className="flex items-center gap-3">
|
|
|
|
|
<span className="text-[10px] font-bold uppercase tracking-wider text-blue-600">
|
|
|
|
|
{item.category}
|
|
|
|
|
</span>
|
2026-04-11 00:21:57 +01:00
|
|
|
<span className="h-1 w-1 rounded-2xl bg-neutral-300" />
|
2026-04-09 13:37:43 +01:00
|
|
|
{/* Data de Publicação em destaque suave */}
|
|
|
|
|
<span className="text-[10px] font-semibold text-neutral-500 uppercase tracking-tight">
|
|
|
|
|
{item.publishDate}
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
2026-04-09 12:02:14 +01:00
|
|
|
|
|
|
|
|
<h3 className="mt-3 text-xl font-bold leading-snug text-neutral-900 transition-colors group-hover:text-[#0066CC]">
|
|
|
|
|
{item.title}
|
|
|
|
|
</h3>
|
|
|
|
|
|
|
|
|
|
<p className="mt-3 line-clamp-2 text-sm leading-relaxed text-neutral-500">
|
|
|
|
|
{item.description}
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<div className="mt-5 flex items-center gap-2 border-t border-neutral-50 pt-4">
|
2026-04-09 13:37:43 +01:00
|
|
|
<svg className="h-3.5 w-3.5 text-neutral-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
|
|
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
|
|
|
</svg>
|
2026-04-09 12:02:14 +01:00
|
|
|
<span className="text-[10px] font-bold uppercase text-neutral-400">
|
2026-04-09 13:37:43 +01:00
|
|
|
{item.readTime} min de leitura
|
2026-04-09 12:02:14 +01:00
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</article>
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
);
|
2026-04-09 13:20:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function TvoneEscolhaEditor() {
|
|
|
|
|
return (
|
2026-04-09 14:12:44 +01:00
|
|
|
<section className="mx-auto w-full max-w-[1200px] px-4 pb-20 overflow-hidden">
|
|
|
|
|
{/* HEADER */}
|
2026-04-09 13:20:10 +01:00
|
|
|
<div className="mb-10 flex items-end justify-between border-b border-neutral-100 pb-6">
|
2026-04-09 14:12:44 +01:00
|
|
|
<h2 className="text-3xl font-bold tracking-tight text-neutral-900 md:text-4xl">
|
|
|
|
|
Escolha do Editor
|
|
|
|
|
</h2>
|
|
|
|
|
<Link href="/escolhas" className="group flex items-center gap-1 text-sm font-semibold text-[#0066CC]">
|
2026-04-09 13:20:10 +01:00
|
|
|
Ver tudo
|
|
|
|
|
<svg className="h-4 w-4 transition-transform group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth={2.5}>
|
2026-04-09 14:12:44 +01:00
|
|
|
<path d="M9 5l7 7-7 7" />
|
2026-04-09 13:20:10 +01:00
|
|
|
</svg>
|
|
|
|
|
</Link>
|
|
|
|
|
</div>
|
|
|
|
|
|
2026-04-09 14:12:44 +01:00
|
|
|
{/* CONTAINER COM ANIMACÃO "WHILE IN VIEW" */}
|
|
|
|
|
<motion.div
|
|
|
|
|
initial={{ x: 80, opacity: 0 }}
|
|
|
|
|
whileInView={{ x: 0, opacity: 1 }} // Dispara quando entra na viewport
|
|
|
|
|
viewport={{ once: true, margin: "-100px" }} // Executa uma vez, 100px antes de chegar no centro
|
|
|
|
|
transition={{
|
|
|
|
|
type: "spring",
|
|
|
|
|
stiffness: 200, // Aumentado de 50 para 200 (muito mais rápido)
|
|
|
|
|
damping: 25, // Mantém o controle para não balançar demais
|
|
|
|
|
mass: 0.5 // Reduzimos a massa para o objeto parecer mais leve
|
|
|
|
|
}}
|
|
|
|
|
className="no-scrollbar flex flex-col gap-10 md:flex-row md:overflow-x-auto md:snap-x md:snap-mandatory md:gap-8 md:pb-6"
|
|
|
|
|
>
|
|
|
|
|
{editorChoice.slice(0, 6).map((item, index) => (
|
2026-04-09 13:37:43 +01:00
|
|
|
<article
|
|
|
|
|
key={index}
|
2026-04-09 14:12:44 +01:00
|
|
|
className={`group flex flex-col gap-5 md:min-w-[31%] md:snap-start
|
|
|
|
|
${index >= 3 ? 'hidden md:flex' : 'flex'}`}
|
2026-04-09 13:37:43 +01:00
|
|
|
>
|
2026-04-09 14:12:44 +01:00
|
|
|
<Link href="#" className="block">
|
2026-04-11 00:21:57 +01:00
|
|
|
<div className="relative aspect-video overflow-hidden rounded-2xl bg-neutral-100 shadow-sm transition-all duration-500 group-hover:shadow-xl">
|
2026-04-09 14:12:44 +01:00
|
|
|
<Image
|
|
|
|
|
src={item.img}
|
|
|
|
|
alt={item.title}
|
|
|
|
|
fill
|
|
|
|
|
className="object-cover transition-transform duration-700 group-hover:scale-105"
|
|
|
|
|
/>
|
2026-04-09 13:20:10 +01:00
|
|
|
</div>
|
|
|
|
|
|
2026-04-09 14:12:44 +01:00
|
|
|
<div className="mt-5 px-1">
|
|
|
|
|
<div className="flex items-center gap-3">
|
|
|
|
|
<span className="text-[10px] font-bold uppercase tracking-wider text-blue-600">{item.category}</span>
|
2026-04-11 00:21:57 +01:00
|
|
|
<span className="h-1 w-1 rounded-2xl bg-neutral-300" />
|
2026-04-09 14:12:44 +01:00
|
|
|
<span className="text-[10px] font-semibold text-neutral-500 uppercase tracking-tight">{item.publishDate}</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h3 className="mt-3 text-xl font-bold leading-snug text-neutral-900 group-hover:text-[#0066CC] transition-colors">
|
|
|
|
|
{item.title}
|
|
|
|
|
</h3>
|
|
|
|
|
|
|
|
|
|
<p className="mt-3 line-clamp-2 text-sm leading-relaxed text-neutral-500">{item.description}</p>
|
|
|
|
|
|
|
|
|
|
<div className="mt-5 flex items-center gap-2 border-t border-neutral-50 pt-4">
|
|
|
|
|
<svg className="h-3.5 w-3.5 text-neutral-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
|
|
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
|
|
|
</svg>
|
|
|
|
|
<span className="text-[10px] font-bold uppercase text-neutral-400">
|
|
|
|
|
{item.readTime} min de leitura
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
2026-04-09 13:20:10 +01:00
|
|
|
|
|
|
|
|
</div>
|
2026-04-09 14:12:44 +01:00
|
|
|
</Link>
|
2026-04-09 13:20:10 +01:00
|
|
|
</article>
|
|
|
|
|
))}
|
2026-04-09 14:12:44 +01:00
|
|
|
</motion.div>
|
2026-04-09 13:20:10 +01:00
|
|
|
</section>
|
|
|
|
|
);
|
2026-04-05 13:14:15 +01:00
|
|
|
}
|