🚀 Auto-deploy: BrainWind atualizado em 29/07/2026 12:00:49

This commit is contained in:
2026-07-29 12:00:49 +00:00
parent fde885ca60
commit a30125c7ce
21 changed files with 932 additions and 210 deletions
+6 -3
View File
@@ -19,7 +19,7 @@ import { EducationalManual } from '@/components/EducationalManual';
import { WindParametersSummary } from '@/components/WindParametersSummary';
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
import { Eye, Box, Layers, ArrowUpRight, CheckCircle2 } from 'lucide-react';
import { Eye, Box, Layers, ArrowUpRight, CheckCircle2, Wind } from 'lucide-react';
import { cn } from '@/lib/utils';
const conditionLabels: Record<ShelterCondition, string> = {
@@ -41,7 +41,7 @@ const ShelterModule: React.FC = () => {
const [backRange, setBackRange] = useState<[number, number]>([0, 75]);
const [leftClosure, setLeftClosure] = useState(100);
const [rightClosure, setRightClosure] = useState(100);
const [viewMode, setViewMode] = useState<'3d' | 'elevation'>('3d');
const [viewMode, setViewMode] = useState<'3d' | 'elevation' | 'airflow'>('3d');
// Determinação automática da posição da fresta/vão a partir dos cursores (base e topo)
const bottomGap = backRange[0];
@@ -502,6 +502,9 @@ const ShelterModule: React.FC = () => {
<Button size="sm" variant={viewMode === '3d' ? 'default' : 'ghost'} className="h-6 px-2.5 text-xs rounded-full" onClick={() => setViewMode('3d')}>
<Box className="size-3 mr-1" /> Vista 3D
</Button>
<Button size="sm" variant={viewMode === 'airflow' ? 'default' : 'ghost'} className="h-6 px-2.5 text-xs rounded-full" onClick={() => setViewMode('airflow')}>
<Wind className="size-3 mr-1" /> Fluxo
</Button>
<Button size="sm" variant={viewMode === 'elevation' ? 'default' : 'ghost'} className="h-6 px-2.5 text-xs rounded-full" onClick={() => setViewMode('elevation')}>
<Eye className="size-3 mr-1" /> Corte A-A
</Button>
@@ -512,7 +515,7 @@ const ShelterModule: React.FC = () => {
<EducationalManual type="shelter" params={{ condition, backClosure, openingPos, theta, windAngle }} />
</div>
{viewMode === '3d' ? (
{viewMode === '3d' || viewMode === 'airflow' ? (
<Shelter3D
condition={condition}
depth={depth}