Visual edit in Lovable

Edited UI in Lovable
This commit is contained in:
gpt-engineer-app[bot]
2026-02-27 01:57:29 +00:00
parent c47b576caa
commit 86edacd7cc
+29 -29
View File
@@ -62,8 +62,8 @@ const Index = () => {
type="file" type="file"
accept=".glb" accept=".glb"
className="hidden" className="hidden"
onChange={handleFileUpload} onChange={handleFileUpload} />
/>
{/* Logo area */} {/* Logo area */}
<div className="mb-12 text-center"> <div className="mb-12 text-center">
@@ -84,8 +84,8 @@ const Index = () => {
<Button <Button
variant="outline" variant="outline"
className="h-28 w-full flex-col gap-3 border-dashed border-2 text-muted-foreground hover:border-primary hover:text-primary transition-all" className="h-28 w-full flex-col gap-3 border-dashed border-2 text-muted-foreground hover:border-primary hover:text-primary transition-all"
onClick={() => fileInputRef.current?.click()} onClick={() => fileInputRef.current?.click()}>
>
<Upload className="h-8 w-8" /> <Upload className="h-8 w-8" />
<div className="text-center"> <div className="text-center">
<p className="text-sm font-semibold">Importar Modelo GLB</p> <p className="text-sm font-semibold">Importar Modelo GLB</p>
@@ -98,19 +98,19 @@ const Index = () => {
variant="outline" variant="outline"
className="h-12 w-full gap-3 border-muted-foreground/30 text-muted-foreground hover:border-primary hover:text-primary transition-all" className="h-12 w-full gap-3 border-muted-foreground/30 text-muted-foreground hover:border-primary hover:text-primary transition-all"
onClick={handleLoadDemo} onClick={handleLoadDemo}
disabled={loadingDemo} disabled={loadingDemo}>
>
{loadingDemo ? ( {loadingDemo ?
<Loader2 className="h-4 w-4 animate-spin" /> <Loader2 className="h-4 w-4 animate-spin" /> :
) : (
<Package className="h-4 w-4" /> <Package className="h-4 w-4" />
)} }
{loadingDemo ? 'Gerando modelo…' : 'Carregar Demo — Viga IPE 200'} {loadingDemo ? 'Gerando modelo…' : 'Carregar Demo — Viga IPE 200'}
</Button> </Button>
{model && ( {model &&
<div className="rounded-lg border border-primary/30 bg-primary/5 p-4 glow-primary"> <div className="rounded-lg border border-primary/30 bg-primary/5 p-4 glow-primary">
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<Box className="h-5 w-5 text-primary" /> <Box className="h-5 w-5 text-primary" />
<div className="min-w-0 flex-1"> <div className="min-w-0 flex-1">
@@ -122,45 +122,45 @@ const Index = () => {
<CheckCircle className="h-5 w-5 text-success shrink-0" /> <CheckCircle className="h-5 w-5 text-success shrink-0" />
</div> </div>
</div> </div>
)} }
{/* Enter viewer */} {/* Enter viewer */}
<Button <Button
className="h-14 w-full gap-3 text-base font-semibold glow-primary" className="h-14 w-full gap-3 text-base font-semibold glow-primary"
disabled={!model} disabled={!model}
onClick={handleEnterViewer} onClick={handleEnterViewer}>
>
<Glasses className="h-5 w-5" /> <Glasses className="h-5 w-5" />
Visualizar Modelo 3D Visualizar Modelo 3D
</Button> </Button>
{/* XR Status */} {/* XR Status */}
<div className="flex items-center justify-center gap-2 pt-2"> <div className="flex items-center justify-center gap-2 pt-2">
{xrSupported === null ? ( {xrSupported === null ?
<> <>
<Loader2 className="h-4 w-4 animate-spin text-muted-foreground" /> <Loader2 className="h-4 w-4 animate-spin text-muted-foreground" />
<span className="text-xs text-muted-foreground">Verificando suporte WebXR</span> <span className="text-xs text-muted-foreground">Verificando suporte WebXR</span>
</> </> :
) : xrSupported ? ( xrSupported ?
<> <>
<CheckCircle className="h-4 w-4 text-success" /> <CheckCircle className="h-4 w-4 text-success" />
<span className="text-xs text-success">WebXR Compatível Passthrough disponível</span> <span className="text-xs text-success">WebXR Compatível Passthrough disponível</span>
</> </> :
) : (
<> <>
<XCircle className="h-4 w-4 text-destructive" /> <XCircle className="h-4 w-4 text-destructive" />
<span className="text-xs text-destructive">WebXR não disponível neste navegador</span> <span className="text-xs text-destructive">WebXR não disponível neste navegador</span>
</> </>
)} }
</div> </div>
</div> </div>
{/* Footer */} {/* Footer */}
<p className="mt-16 text-center font-mono text-xs text-muted-foreground/50"> <p className="mt-16 text-center font-mono text-xs text-muted-foreground/50">
TrackkSteelXR v1.0 Advance Steel Inspection TrackSteelXR v1.0 Q.C. Inspection
</p> </p>
</div> </div>);
);
}; };
export default Index; export default Index;