94 lines
4.7 KiB
TypeScript
94 lines
4.7 KiB
TypeScript
import {
|
|
Dialog,
|
|
DialogContent,
|
|
DialogDescription,
|
|
DialogHeader,
|
|
DialogTitle,
|
|
DialogTrigger,
|
|
} from '@/components/ui/dialog';
|
|
import { Info, AlertTriangle } from 'lucide-react';
|
|
import { Button } from '@/components/ui/button';
|
|
|
|
interface InfoV0ModalProps {
|
|
variant?: 'icon' | 'button';
|
|
buttonText?: string;
|
|
className?: string;
|
|
}
|
|
|
|
export function InfoV0Modal({ variant = 'icon', buttonText = 'Atenção', className = '' }: InfoV0ModalProps) {
|
|
return (
|
|
<Dialog>
|
|
<DialogTrigger asChild>
|
|
{variant === 'icon' ? (
|
|
<Button
|
|
variant="ghost"
|
|
size="icon"
|
|
className={`h-5 w-5 text-muted-foreground hover:text-primary rounded-full p-0 shrink-0 ${className}`}
|
|
title="Por que existem divergências na velocidade do vento?"
|
|
>
|
|
<Info className="h-4 w-4" />
|
|
</Button>
|
|
) : (
|
|
<Button
|
|
variant="outline"
|
|
size="sm"
|
|
className={`h-7 px-2.5 text-[10px] gap-1 border-amber-500/30 hover:border-amber-500/50 text-amber-600 dark:text-amber-400 bg-amber-500/5 hover:bg-amber-500/10 shrink-0 ${className}`}
|
|
>
|
|
<AlertTriangle className="h-3.5 w-3.5" />
|
|
<span>{buttonText}</span>
|
|
</Button>
|
|
)}
|
|
</DialogTrigger>
|
|
<DialogContent className="sm:max-w-[500px] max-w-[95vw] p-4 sm:p-6 bg-background border border-border shadow-2xl">
|
|
<DialogHeader className="border-b pb-2 flex-row gap-2 items-center">
|
|
<AlertTriangle className="h-5 w-5 text-amber-500 shrink-0" />
|
|
<div>
|
|
<DialogTitle className="text-sm font-semibold text-foreground">
|
|
Divergências de Velocidade Básica (V₀)
|
|
</DialogTitle>
|
|
<DialogDescription className="text-[10px]">
|
|
Entenda por que a velocidade do vento na lista de cidades pode diferir do mapa de isopletas.
|
|
</DialogDescription>
|
|
</div>
|
|
</DialogHeader>
|
|
|
|
<div className="space-y-4 text-xs leading-relaxed text-muted-foreground mt-4">
|
|
<div className="space-y-1.5">
|
|
<h4 className="font-semibold text-foreground flex items-center gap-1.5">
|
|
<span className="flex h-5 w-5 items-center justify-center rounded-full bg-primary/10 text-primary text-[10px] font-mono font-bold">1</span>
|
|
Soberania do Anexo C (Dados Reais vs. Macro)
|
|
</h4>
|
|
<p>
|
|
As 49 estações principais da lista utilizam os dados do <strong>Anexo C da NBR 6123</strong>, obtidos a partir de medições estatísticas históricas reais em aeroportos. A norma estabelece que, se houver dado tabulado no anexo para a localidade, <strong>este valor oficial deve ser adotado prioritariamente</strong> sobre a estimativa visual obtida no mapa de isopletas.
|
|
</p>
|
|
</div>
|
|
|
|
<div className="space-y-1.5">
|
|
<h4 className="font-semibold text-foreground flex items-center gap-1.5">
|
|
<span className="flex h-5 w-5 items-center justify-center rounded-full bg-primary/10 text-primary text-[10px] font-mono font-bold">2</span>
|
|
Efeito de Borda e Arredondamento de Segurança
|
|
</h4>
|
|
<p>
|
|
Cidades que ficam situadas geograficamente entre duas curvas de vento (por exemplo, na transição entre 30 m/s e 35 m/s) devem adotar o valor da <strong>curva de velocidade superior mais próxima</strong> (35 m/s) para garantir o conservadorismo estrutural e a segurança humana contra rajadas extremas.
|
|
</p>
|
|
</div>
|
|
|
|
<div className="space-y-1.5">
|
|
<h4 className="font-semibold text-foreground flex items-center gap-1.5">
|
|
<span className="flex h-5 w-5 items-center justify-center rounded-full bg-primary/10 text-primary text-[10px] font-mono font-bold">3</span>
|
|
Microclimas e Topografia Local
|
|
</h4>
|
|
<p>
|
|
O mapa nacional de isopletas é aproximado. Acidentes geográficos locais como vales profundos, serras (como a Serra do Mar) ou proximidade com o oceano provocam acelerações do vento. As estações de monitoramento registram esses efeitos localmente, alterando a velocidade regulamentada em relação à linha média suave do mapa nacional.
|
|
</p>
|
|
</div>
|
|
|
|
<div className="rounded-md border border-amber-500/20 bg-amber-500/5 p-2.5 text-[11px] text-amber-600 dark:text-amber-400">
|
|
<strong>Recomendação Técnica:</strong> Verifique sempre o histórico de vento local e, em caso de dúvida, utilize a maior velocidade disponível para assegurar a estabilidade e segurança da edificação.
|
|
</div>
|
|
</div>
|
|
</DialogContent>
|
|
</Dialog>
|
|
);
|
|
}
|