124 lines
6.2 KiB
TypeScript
124 lines
6.2 KiB
TypeScript
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog';
|
|
import { Button } from '@/components/ui/button';
|
|
import { Info, AlertTriangle } from 'lucide-react';
|
|
import { cn } from '@/lib/utils';
|
|
import { useState } from 'react';
|
|
|
|
interface TermsOfUseDialogProps {
|
|
isCollapsed?: boolean;
|
|
trigger?: React.ReactNode;
|
|
}
|
|
|
|
export function TermsOfUseDialog({ isCollapsed = false, trigger }: TermsOfUseDialogProps) {
|
|
const [open, setOpen] = useState(false);
|
|
|
|
return (
|
|
<Dialog open={open} onOpenChange={setOpen}>
|
|
<DialogTrigger asChild>
|
|
{trigger ? trigger : (
|
|
<button
|
|
className={cn(
|
|
'flex items-center gap-3 px-3 py-2.5 rounded-md transition-colors text-sm w-full cursor-pointer text-muted-foreground hover:bg-secondary/50 hover:text-secondary-foreground',
|
|
isCollapsed && 'justify-center px-0'
|
|
)}
|
|
title={isCollapsed ? 'Termos de Uso e Responsabilidade' : undefined}
|
|
>
|
|
<Info className="w-5 h-5 shrink-0" />
|
|
{!isCollapsed && <span>Termos de Uso</span>}
|
|
</button>
|
|
)}
|
|
</DialogTrigger>
|
|
|
|
<DialogContent className="max-w-2xl max-h-[85vh] p-0 flex flex-col">
|
|
<DialogHeader className="px-6 py-4 border-b">
|
|
<DialogTitle className="text-xl flex items-center gap-2">
|
|
<Info className="w-5 h-5 text-primary" />
|
|
Termos de Uso e Responsabilidade
|
|
</DialogTitle>
|
|
</DialogHeader>
|
|
|
|
<div className="flex-1 px-6 py-4 overflow-y-auto">
|
|
<div className="space-y-6 text-sm leading-relaxed text-muted-foreground pb-6">
|
|
|
|
<div className="bg-primary/5 p-4 rounded-lg border border-primary/10">
|
|
<p className="font-medium text-foreground mb-1">Norma de Referência</p>
|
|
<p>
|
|
Os cálculos estruturais e parâmetros de vento gerados pelo BrainWind seguem as
|
|
diretrizes estabelecidas pela <strong>ABNT NBR 6123:2023</strong> —
|
|
<em>Forças devidas ao vento em edificações</em>.
|
|
</p>
|
|
</div>
|
|
|
|
<p>
|
|
O <strong>BrainWind</strong> é uma ferramenta computacional projetada para auxiliar projetistas
|
|
no cálculo e na análise dos efeitos do vento em edificações. Por ser um aplicativo
|
|
de suporte técnico, sua utilização está estritamente sujeita às seguintes condições:
|
|
</p>
|
|
|
|
<div className="bg-destructive/10 p-4 rounded-lg border border-destructive/20 text-destructive-foreground">
|
|
<div className="flex gap-2 items-center font-bold mb-2 text-destructive">
|
|
<AlertTriangle className="w-5 h-5" />
|
|
Aviso de Responsabilidade Técnica
|
|
</div>
|
|
<p className="text-sm">
|
|
A checagem, validação e verificação de todos os resultados, relatórios, dados de
|
|
entrada e parâmetros gerados pelo BrainWind são de <strong>responsabilidade exclusiva
|
|
e integral do usuário (Engenheiro Responsável)</strong>.
|
|
<br /><br />
|
|
O aplicativo é estritamente uma ferramenta de auxílio e não substitui, sob
|
|
nenhuma circunstância, o julgamento técnico, a análise detalhada das normas e o
|
|
dimensionamento final da estrutura por parte de um profissional de engenharia
|
|
legalmente habilitado (com registro ativo no CREA/CAU).
|
|
</p>
|
|
</div>
|
|
|
|
<ul className="space-y-4 list-disc pl-5">
|
|
<li>
|
|
<strong className="text-foreground">Licenciamento e Uso Autorizado:</strong> O uso do
|
|
BrainWind é restrito aos detentores de licença válida e ativa, emitida diretamente
|
|
pelos desenvolvedores ou por seus distribuidores autorizados. É terminantemente
|
|
proibida a distribuição, reprodução, engenharia reversa, compartilhamento de credenciais
|
|
ou qualquer forma de redistribuição não autorizada do software ou de suas licenças.
|
|
</li>
|
|
|
|
<li>
|
|
<strong className="text-foreground">Privacidade de Dados (LGPD):</strong> Os dados pessoais,
|
|
credenciais de acesso e projetos informados ao BrainWind são armazenados em servidores
|
|
seguros e tratados em rigorosa conformidade com a Lei Geral de Proteção de Dados
|
|
(Lei nº 13.709/2018). Detalhes adicionais sobre coleta, retenção e direitos do titular
|
|
estão disponíveis em nossa Política de Privacidade integral.
|
|
</li>
|
|
|
|
<li>
|
|
<strong className="text-foreground">Isenção de Responsabilidade e Danos:</strong> Os
|
|
desenvolvedores, distribuidores e afiliados do BrainWind não se responsabilizam por
|
|
quaisquer danos materiais, morais, perdas financeiras, interrupção de negócios ou
|
|
falhas estruturais decorrentes de decisões de projeto tomadas com base nas
|
|
informações ou cálculos fornecidos pelo aplicativo.
|
|
</li>
|
|
|
|
<li>
|
|
<strong className="text-foreground">Suporte e Aprimoramento Contínuo:</strong> Como o
|
|
sistema passa por atualizações e revisões constantes para melhor alinhamento
|
|
normativo, solicitamos que dúvidas, sugestões de melhoria e eventuais reportes
|
|
de inconsistências algorítmicas sejam enviados diretamente para nossa equipe
|
|
técnica através do canal: <strong>suporte@brainwind.com.br</strong>.
|
|
</li>
|
|
</ul>
|
|
|
|
<div className="pt-4 mt-6 border-t text-xs text-muted-foreground/70">
|
|
<p>Última atualização: julho de 2026. Esta versão substitui todas as anteriores.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="p-4 border-t bg-muted/20 flex justify-end">
|
|
<Button onClick={() => setOpen(false)}>
|
|
Ciente e de Acordo
|
|
</Button>
|
|
</div>
|
|
</DialogContent>
|
|
</Dialog>
|
|
);
|
|
}
|