Files
VPS 4 Builder ba062e92d0 fix(login): render standalone views edge-to-edge e esconde scrollbar do carrossel de onboarding
- App.tsx: wrappers de padding (p-4/md:p-8) e max-w-7xl/mx-auto agora só se aplicam quando não é tela standalone; login/landing/public renderizam full-bleed
- OnboardingChat.tsx: classe ob-noscroll esconde a barra de rolagem do slide intro (mantém scroll), substituindo a custom-scrollbar indefinida no fluxo de login

Inclui também demais alterações pendentes do working tree (snapshot do estado atual de dev).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 13:23:19 +02:00

22 lines
1.0 KiB
TypeScript

import React from 'react';
import { Inbox } from 'lucide-react';
// Estado vazio padrão (profissional): ícone + título + descrição + ação opcional.
// Use quando uma lista não tem dados (em vez de deixar a área em branco).
export const EmptyState: React.FC<{
icon?: React.ElementType;
title?: string;
description?: string;
action?: React.ReactNode;
className?: string;
}> = ({ icon: Icon = Inbox, title = 'Nada por aqui ainda', description, action, className }) => (
<div className={`flex flex-col items-center justify-center text-center py-14 px-6 ${className || ''}`}>
<div className="w-16 h-16 rounded-2xl bg-gray-50 border border-gray-100 flex items-center justify-center mb-4">
<Icon size={28} className="text-gray-300" />
</div>
<h3 className="text-sm font-black text-gray-700 uppercase tracking-tight">{title}</h3>
{description && <p className="text-xs text-gray-400 mt-1.5 max-w-sm leading-relaxed">{description}</p>}
{action && <div className="mt-4">{action}</div>}
</div>
);