import { useState } from "react"; import { Link } from "wouter"; import { LayoutGrid, ArrowLeft, Search, Plus, MoreVertical, Globe, Eye, Edit2, Copy, Trash2, ExternalLink, Settings, Palette, Code, Image, FileText, Layers, Monitor, Smartphone, Tablet } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Badge } from "@/components/ui/badge"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; import { Label } from "@/components/ui/label"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, DropdownMenuSeparator } from "@/components/ui/dropdown-menu"; interface Site { id: number; name: string; domain: string; status: string; template: string; pages: number; lastPublished: string; thumbnail: string; } export default function XosSites() { const [isNewSiteOpen, setIsNewSiteOpen] = useState(false); const [newSiteStep, setNewSiteStep] = useState(1); const [selectedTemplate, setSelectedTemplate] = useState(""); const sites: Site[] = [ { id: 1, name: "Landing Page Principal", domain: "arcadia.com.br", status: "published", template: "landing", pages: 5, lastPublished: new Date(Date.now() - 86400000).toISOString(), thumbnail: "/api/placeholder/300/200", }, { id: 2, name: "Blog Corporativo", domain: "blog.arcadia.com.br", status: "published", template: "blog", pages: 12, lastPublished: new Date(Date.now() - 172800000).toISOString(), thumbnail: "/api/placeholder/300/200", }, { id: 3, name: "Central de Ajuda", domain: "help.arcadia.com.br", status: "draft", template: "docs", pages: 8, lastPublished: "", thumbnail: "/api/placeholder/300/200", }, ]; const templates = [ { id: "landing", name: "Landing Page", description: "Página de captura e conversão", icon: Layers, color: "from-blue-500 to-cyan-500", }, { id: "blog", name: "Blog", description: "Artigos e conteúdo", icon: FileText, color: "from-green-500 to-emerald-500", }, { id: "docs", name: "Documentação", description: "Central de ajuda e docs", icon: Code, color: "from-violet-500 to-purple-500", }, { id: "portfolio", name: "Portfólio", description: "Showcase de trabalhos", icon: Image, color: "from-orange-500 to-red-500", }, { id: "ecommerce", name: "E-commerce", description: "Loja virtual", icon: Globe, color: "from-pink-500 to-rose-500", }, { id: "blank", name: "Em Branco", description: "Comece do zero", icon: LayoutGrid, color: "from-gray-400 to-gray-500", }, ]; const getStatusColor = (status: string) => { const colors: Record = { published: "bg-green-100 text-green-700", draft: "bg-yellow-100 text-yellow-700", offline: "bg-gray-100 text-gray-700", }; return colors[status] || colors.draft; }; return (

Sites

Site Builder

{ setIsNewSiteOpen(open); if (!open) { setNewSiteStep(1); setSelectedTemplate(""); } }}> Criar Novo Site
{newSiteStep === 1 && ( <>

Escolha um template para começar:

{templates.map((template) => ( setSelectedTemplate(template.id)} data-testid={`template-${template.id}`} >

{template.name}

{template.description}

))}
{selectedTemplate && (
.arcadia.app
)} )}
Todos Publicados Rascunhos
{sites.map((site) => (
{site.status === "published" ? "Publicado" : "Rascunho"}

{site.name}

{site.domain}

Visualizar Editar Configurações Duplicar Excluir
{site.pages} páginas {site.lastPublished && ( Atualizado {new Date(site.lastPublished).toLocaleDateString("pt-BR")} )}
))} setIsNewSiteOpen(true)} data-testid="card-new-site">

Criar Novo Site

Importar Site Existente Importe um site existente fornecendo a URL ou fazendo upload do HTML

Arraste arquivos ou clique para selecionar

); }