feat(audit): adicionar módulo de auditoria + rebranding BrainWind

- AuditPanel, AuditDetailPopup, parser, runner, prompt-builder, serializer, scenarios, export-audit-pdf
- i18n: strings novas para auditoria
- Settings: integração com módulo de auditoria
- types: tipos compartilhados do módulo audit
This commit is contained in:
2026-07-10 11:38:12 +00:00
parent dc3721e12b
commit d40b3b0c9c
12 changed files with 1657 additions and 14 deletions
+22 -3
View File
@@ -1,7 +1,8 @@
import React, { useRef, useState } from 'react';
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Sun, Moon, Laptop, Save, Trash2, Upload, CheckCircle2, AlertCircle } from 'lucide-react';
import { Sun, Moon, Laptop, Save, Trash2, Upload, CheckCircle2, AlertCircle, FlaskConical } from 'lucide-react';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { useTheme } from '@/lib/theme';
import { useProjects } from '@/lib/hooks/useProjects';
import { useWindStore } from '@/store/appStore';
@@ -12,6 +13,7 @@ import {
readProjectFile,
type ImportResult,
} from '@/lib/import-project';
import AuditPanel from '@/components/AuditPanel';
const SettingsModule: React.FC = () => {
const { theme, setTheme, effectiveTheme } = useTheme();
@@ -60,8 +62,19 @@ const SettingsModule: React.FC = () => {
};
return (
<div className="p-6 max-w-5xl mx-auto space-y-6 overflow-auto">
<h1 className="text-3xl font-bold">{t('nav_settings')}</h1>
<div className="p-6 max-w-5xl mx-auto overflow-auto">
<h1 className="text-3xl font-bold mb-6">{t('nav_settings')}</h1>
<Tabs defaultValue="config" className="w-full">
<TabsList className="grid w-full grid-cols-2 mb-6">
<TabsTrigger value="config">Configurações</TabsTrigger>
<TabsTrigger value="testes">
<FlaskConical className="w-4 h-4 mr-1.5" />
Testes
</TabsTrigger>
</TabsList>
<TabsContent value="config" className="space-y-6">
<Card>
<CardHeader>
@@ -207,6 +220,12 @@ const SettingsModule: React.FC = () => {
</p>
</CardContent>
</Card>
</TabsContent>
<TabsContent value="testes" className="space-y-6">
<AuditPanel />
</TabsContent>
</Tabs>
</div>
);
};