🚀 Auto-deploy: melhoria no snap e medição AR em 31/05/2026 01:24:49

This commit is contained in:
2026-05-31 01:24:49 +00:00
parent 43ce36e7a6
commit c798179560
11 changed files with 15 additions and 15 deletions
+3 -3
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- TODO: Set the document title to the name of your application --> <!-- TODO: Set the document title to the name of your application -->
<title>TrackSteelXR</title> <title>SteelXR</title>
<meta name="description" content="VR tool inspection industrial Q.C."> <meta name="description" content="VR tool inspection industrial Q.C.">
<meta name="author" content="Lovable" /> <meta name="author" content="Lovable" />
<link rel="icon" type="image/png" href="/iconeXR_transparente.png" /> <link rel="icon" type="image/png" href="/iconeXR_transparente.png" />
@@ -19,8 +19,8 @@
<meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@Lovable" /> <meta name="twitter:site" content="@Lovable" />
<meta name="twitter:image" content="https://storage.googleapis.com/gpt-engineer-file-uploads/attachments/og-images/a850c4e4-56e7-4358-91d7-b33ddcd600ac?Expires=1772161962&amp;GoogleAccessId=go-api-on-aws%40gpt-engineer-390607.iam.gserviceaccount.com&amp;Signature=Q%2B%2F2EsHIygjuVQKvjQWWytqElhVjmehhRIdWJ1eYRremdUzoUIv36NuXp042g0lBzszDBa14EbkCTYykUEMpqrclTioA2035aKEY%2BR39jqYm7oBKXCm2rs2vopnW2ahZYf8SjX5SPqxwFzaO%2FvJt71rMU0A6PzihBNRa96ezpIhxGqzpbZe9zP4PtyRhg03aCp5sJytJp9bBOphzXb9YGeY58XWWqjAqEO1tctOGh25hZsYLgEU61wy3xnehDc8kZ%2FK0MpRpxuGibae5ypjDtGbXf9G5LjSWYecVY5pWOjnO6ZSo1CL8DaWtD%2FU3V0MszZ8f4SETk7fQAh0GR4b8Sg%3D%3D"> <meta name="twitter:image" content="https://storage.googleapis.com/gpt-engineer-file-uploads/attachments/og-images/a850c4e4-56e7-4358-91d7-b33ddcd600ac?Expires=1772161962&amp;GoogleAccessId=go-api-on-aws%40gpt-engineer-390607.iam.gserviceaccount.com&amp;Signature=Q%2B%2F2EsHIygjuVQKvjQWWytqElhVjmehhRIdWJ1eYRremdUzoUIv36NuXp042g0lBzszDBa14EbkCTYykUEMpqrclTioA2035aKEY%2BR39jqYm7oBKXCm2rs2vopnW2ahZYf8SjX5SPqxwFzaO%2FvJt71rMU0A6PzihBNRa96ezpIhxGqzpbZe9zP4PtyRhg03aCp5sJytJp9bBOphzXb9YGeY58XWWqjAqEO1tctOGh25hZsYLgEU61wy3xnehDc8kZ%2FK0MpRpxuGibae5ypjDtGbXf9G5LjSWYecVY5pWOjnO6ZSo1CL8DaWtD%2FU3V0MszZ8f4SETk7fQAh0GR4b8Sg%3D%3D">
<meta property="og:title" content="TrackSteelXR"> <meta property="og:title" content="SteelXR">
<meta name="twitter:title" content="TrackSteelXR"> <meta name="twitter:title" content="SteelXR">
<meta property="og:description" content="VR tool inspection industrial Q.C."> <meta property="og:description" content="VR tool inspection industrial Q.C.">
<meta name="twitter:description" content="VR tool inspection industrial Q.C."> <meta name="twitter:description" content="VR tool inspection industrial Q.C.">
</head> </head>
+1 -1
View File
@@ -16,7 +16,7 @@ import { addRecentFile } from '@/lib/recentFiles';
const DEFAULT_URL = 'https://store.tracksteel.com.br/demo.ifc'; const DEFAULT_URL = 'https://store.tracksteel.com.br/demo.ifc';
const PRESETS: { label: string; url: string }[] = [ const PRESETS: { label: string; url: string }[] = [
{ label: 'Demo IFC (TrackSteel)', url: DEFAULT_URL }, { label: 'Demo IFC (SteelXR)', url: DEFAULT_URL },
]; ];
/** Normaliza URLs de Dropbox / OneDrive para apontar ao binário direto. */ /** Normaliza URLs de Dropbox / OneDrive para apontar ao binário direto. */
+1 -1
View File
@@ -58,7 +58,7 @@ export function LandingContent() {
<section className="px-4 text-center space-y-6"> <section className="px-4 text-center space-y-6">
<div className="rounded-2xl border border-border bg-gradient-to-b from-card to-muted/20 p-8 md:p-12"> <div className="rounded-2xl border border-border bg-gradient-to-b from-card to-muted/20 p-8 md:p-12">
<p className="text-muted-foreground max-w-2xl mx-auto text-base md:text-lg leading-relaxed"> <p className="text-muted-foreground max-w-2xl mx-auto text-base md:text-lg leading-relaxed">
Atrasos por erros de medição, retrabalho por falhas de comunicação e perdas por não conformidade são o pesadelo de qualquer gestão de produção metalmecânica ou obra civil. O TrackSteelXR coloca o modelo 3D IFC no canteiro em AR para que engenheiros e gestores tomem decisões precisas no momento certo. <span className="font-semibold text-foreground">Menos retrabalho, mais produtividade, entregas dentro do prazo.</span> Atrasos por erros de medição, retrabalho por falhas de comunicação e perdas por não conformidade são o pesadelo de qualquer gestão de produção metalmecânica ou obra civil. O SteelXR coloca o modelo 3D IFC no canteiro em AR para que engenheiros e gestores tomem decisões precisas no momento certo. <span className="font-semibold text-foreground">Menos retrabalho, mais produtividade, entregas dentro do prazo.</span>
</p> </p>
<div className="mt-8 flex justify-center gap-4"> <div className="mt-8 flex justify-center gap-4">
<Button size="lg" className="gap-2"> <Button size="lg" className="gap-2">
+1 -1
View File
@@ -130,7 +130,7 @@ export function ShareButton({ variant = 'default', autoOpen, onHandleChange, onV
if (navigator.share) { if (navigator.share) {
try { try {
await navigator.share({ await navigator.share({
title: 'TrackSteelXR — Sessão ao vivo', title: 'SteelXR — Sessão ao vivo',
text: 'Acompanhe a inspeção ao vivo:', text: 'Acompanhe a inspeção ao vivo:',
url: link, url: link,
}); });
+1 -1
View File
@@ -245,7 +245,7 @@ function FloatingPanel({
<XR3DPanel size={[W, H]}> <XR3DPanel size={[W, H]}>
<Text position={[-W / 2 + 0.012, H / 2 - 0.018, 0.002]} fontSize={0.011} color="#3b82f6" <Text position={[-W / 2 + 0.012, H / 2 - 0.018, 0.002]} fontSize={0.011} color="#3b82f6"
anchorX="left" anchorY="middle"> anchorX="left" anchorY="middle">
TrackSteelXR · HUD AR SteelXR · HUD AR
</Text> </Text>
{/* Pin / Drag / Recenter — anchored to top-right, kept inside the panel. {/* Pin / Drag / Recenter — anchored to top-right, kept inside the panel.
Group origin is at the right edge with margin; buttons extend leftward. */} Group origin is at the right edge with margin; buttons extend leftward. */}
+2 -2
View File
@@ -75,7 +75,7 @@ export function startRecording() {
const url = URL.createObjectURL(blob); const url = URL.createObjectURL(blob);
const a = document.createElement('a'); const a = document.createElement('a');
a.href = url; a.href = url;
a.download = `tracksteel-AR-${new Date().toISOString().replace(/[:.]/g, '-')}.${ext}`; a.download = `steelxr-AR-${new Date().toISOString().replace(/[:.]/g, '-')}.${ext}`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
document.body.removeChild(a); document.body.removeChild(a);
@@ -123,7 +123,7 @@ export function captureScreenshot(): string | null {
// Trigger download // Trigger download
const a = document.createElement('a'); const a = document.createElement('a');
a.href = dataUrl; a.href = dataUrl;
a.download = `tracksteel-AR-${new Date().toISOString().replace(/[:.]/g, '-')}.png`; a.download = `steelxr-AR-${new Date().toISOString().replace(/[:.]/g, '-')}.png`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
document.body.removeChild(a); document.body.removeChild(a);
+1 -1
View File
@@ -348,7 +348,7 @@ const Index = () => {
{/* 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">
TrackSteelXR v1.10 Q.C. Inspection SteelXR v1.10 Q.C. Inspection
</p> </p>
{showLogs && ( {showLogs && (
+1 -1
View File
@@ -1387,7 +1387,7 @@ export default function MeetingRoom() {
<Button variant="ghost" size="icon" onClick={() => navigate('/')} className="text-muted-foreground hover:text-foreground"> <Button variant="ghost" size="icon" onClick={() => navigate('/')} className="text-muted-foreground hover:text-foreground">
<Home className="h-5 w-5" /> <Home className="h-5 w-5" />
</Button> </Button>
<span className="font-mono text-xs uppercase tracking-widest text-muted-foreground">TrackSteelXR</span> <span className="font-mono text-xs uppercase tracking-widest text-muted-foreground">SteelXR</span>
</div> </div>
<div className="w-full max-w-4xl rounded-2xl border border-border bg-card/65 p-6 md:p-10 shadow-2xl backdrop-blur-md animate-in fade-in zoom-in-95 duration-200"> <div className="w-full max-w-4xl rounded-2xl border border-border bg-card/65 p-6 md:p-10 shadow-2xl backdrop-blur-md animate-in fade-in zoom-in-95 duration-200">
+1 -1
View File
@@ -282,7 +282,7 @@ const Viewer = () => {
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<Box className="h-5 w-5 text-primary" /> <Box className="h-5 w-5 text-primary" />
<h1 className="font-mono text-sm font-semibold text-foreground"> <h1 className="font-mono text-sm font-semibold text-foreground">
TrackSteel<span className="text-primary">XR</span> Steel<span className="text-primary">XR</span>
</h1> </h1>
</div> </div>
</div> </div>
+2 -2
View File
@@ -78,7 +78,7 @@ export default function Watch() {
<div className="min-h-screen bg-background flex flex-col"> <div className="min-h-screen bg-background flex flex-col">
<header className="border-b bg-card/50 backdrop-blur px-4 py-3 flex items-center justify-between"> <header className="border-b bg-card/50 backdrop-blur px-4 py-3 flex items-center justify-between">
<Link to="/" className="font-mono text-sm font-bold text-foreground"> <Link to="/" className="font-mono text-sm font-bold text-foreground">
TrackSteel<span className="text-primary">XR</span> Steel<span className="text-primary">XR</span>
</Link> </Link>
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<span className="font-mono text-[10px] text-muted-foreground">SALA</span> <span className="font-mono text-[10px] text-muted-foreground">SALA</span>
@@ -159,7 +159,7 @@ export default function Watch() {
<footer className="border-t bg-card/50 backdrop-blur px-4 py-2 flex items-center justify-center gap-2"> <footer className="border-t bg-card/50 backdrop-blur px-4 py-2 flex items-center justify-center gap-2">
<Eye className="h-3 w-3 text-muted-foreground" /> <Eye className="h-3 w-3 text-muted-foreground" />
<span className="font-mono text-[10px] text-muted-foreground"> <span className="font-mono text-[10px] text-muted-foreground">
Modo somente visualização · TrackSteelXR Modo somente visualização · SteelXR
</span> </span>
</footer> </footer>
</div> </div>
+1 -1
View File
@@ -1074,7 +1074,7 @@ const XRSession = () => {
const url = await generateMarkerDownloadURL(); const url = await generateMarkerDownloadURL();
const a = document.createElement('a'); const a = document.createElement('a');
a.href = url; a.href = url;
a.download = 'TrackSteelXR_Marker.png'; a.download = 'SteelXR_Marker.png';
a.click(); a.click();
URL.revokeObjectURL(url); URL.revokeObjectURL(url);
toast.success('Marcador baixado — Imprima em 15×15cm'); toast.success('Marcador baixado — Imprima em 15×15cm');