🚀 Auto-deploy: BrainWind atualizado em 14/07/2026 18:03:29

This commit is contained in:
2026-07-14 18:03:29 +00:00
parent 5e44f1a0bd
commit 0755a56702
20 changed files with 597 additions and 263 deletions
+26 -28
View File
@@ -1,5 +1,5 @@
import React, { useMemo, useState } from 'react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
import { useHydrationStore } from '@/store/hydrationStore';
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
@@ -11,11 +11,12 @@ import { calculatePiperack, type PipeDef } from '@/lib/modules/piperack';
import { Piperack3D } from '@/components/three/Piperack3D';
import SceneCapturePanel from '../components/SceneCapturePanel';
import ExportMenu from '../components/ExportMenu';
import { EducationalManual } from '@/components/EducationalManual';
import { WindParametersSummary } from '@/components/WindParametersSummary';
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
import { Plus, Trash2, Layers, Info } from 'lucide-react';
import { Plus, Trash2, Info } from 'lucide-react';
import { Tooltip, TooltipContent, TooltipTrigger, TooltipProvider } from '@/components/ui/tooltip';
import { Input } from '@/components/ui/input';
import { EducationalManual } from '@/components/EducationalManual';
const PiperackModule: React.FC = () => {
const { q } = useWindStore();
@@ -110,25 +111,25 @@ const PiperackModule: React.FC = () => {
};
return (
<div className="flex flex-col h-[calc(100vh-3.5rem)] md:h-screen bg-background">
<header className="shrink-0 flex items-center px-6 py-4 border-b bg-card">
<div className="flex items-center gap-3">
<div className="p-2 bg-primary/10 rounded-lg">
<Layers className="w-5 h-5 text-primary" />
</div>
<div>
<h1 className="text-xl font-bold tracking-tight">Pipe-Racks Industriais</h1>
<p className="text-sm text-muted-foreground">Vento transversal (Sec. 7 - NBR 6123)</p>
</div>
</div>
</header>
<div className="flex-1 flex flex-col lg:flex-row p-4 gap-4 overflow-hidden bg-muted/30">
{/* Coluna Esquerda: Entradas */}
<div className="w-full lg:w-80 shrink-0 overflow-y-auto bg-card rounded-xl border border-border shadow-sm p-5 space-y-6">
<div>
<h3 className="font-medium mb-4">Geometria da Estrutura</h3>
<div className="flex flex-col lg:flex-row h-full w-full gap-4 p-4 lg:p-6 bg-muted/30">
{/* Coluna Esquerda: Entradas */}
<div className="w-full lg:w-80 shrink-0 flex flex-col gap-4 overflow-y-auto pb-8 lg:pb-0">
<Card className="shadow-sm border-border">
<CardHeader className="pb-3 flex flex-row items-start justify-between space-y-0 pr-6">
<div>
<CardTitle className="text-lg">Pipe-Racks Industriais</CardTitle>
<CardDescription>Vento transversal (Sec. 7 - NBR 6123)</CardDescription>
</div>
<SaveModuleDialog
moduleType="piperack"
inputs={{ elevation, width, height, spacing, numFrames, pipes, phiStruct }}
/>
</CardHeader>
<CardContent className="space-y-6">
<WindParametersSummary />
<div>
<h3 className="font-medium mb-4">Geometria da Estrutura</h3>
<div className="space-y-5">
<div className="space-y-2">
<div className="flex justify-between">
@@ -239,7 +240,9 @@ const PiperackModule: React.FC = () => {
</div>
)}
</div>
</div>
</CardContent>
</Card>
</div>
{/* Coluna Central: 3D */}
<div className="flex-1 flex flex-col min-h-[500px] lg:min-h-0 bg-background rounded-xl border border-border shadow-sm overflow-hidden relative">
@@ -422,17 +425,12 @@ const PiperackModule: React.FC = () => {
<div className="flex justify-center bg-background rounded-xl border border-border shadow-sm p-4">
<div className="flex flex-col items-end gap-2">
<SaveModuleDialog
moduleType="piperack"
inputs={{ elevation, width, height, spacing, numFrames, pipes, phiStruct }}
/>
<ExportMenu onExportPDF={handleExportPDF} />
</div>
</div>
<SceneCapturePanel />
</div>
</div>
</div>
);
};