File size: 4,884 Bytes
81b4246
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Analyze a Vehicle — CarDentIQ</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&family=JetBrains+Mono:wght@500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/workspace.css">
</head>
<body>
  <header class="navbar">
    <div class="container navbar-inner">
      <a href="index.html" class="brand">
        <span class="brand-mark" aria-hidden="true">
          <svg viewBox="0 0 24 24" width="18" height="18" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M3 12.5 4.6 8a2 2 0 0 1 1.9-1.4h11a2 2 0 0 1 1.9 1.4L21 12.5" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
            <rect x="2.4" y="12.5" width="19.2" height="5.2" rx="1.6" stroke="currentColor" stroke-width="1.7"/>
            <circle cx="6.6" cy="17.7" r="1.6" fill="currentColor"/>
            <circle cx="17.4" cy="17.7" r="1.6" fill="currentColor"/>
          </svg>
        </span>
        <span class="brand-name">CarDentIQ</span>
      </a>
      <div class="navbar-actions">
        <a href="index.html" class="btn-secondary btn-sm">← Home</a>
      </div>
    </div>
  </header>

  <div class="stepper-bar">
    <div class="stepper">
      <div class="step active" data-step="1">
        <span class="step-num">1</span><span class="step-label">Upload</span>
      </div>
      <div class="step-line" id="line1"></div>
      <div class="step" data-step="2">
        <span class="step-num">2</span><span class="step-label">Analyze</span>
      </div>
      <div class="step-line" id="line2"></div>
      <div class="step" data-step="3">
        <span class="step-num">3</span><span class="step-label">Report</span>
      </div>
    </div>
  </div>

  <main class="workspace-page">
    <span class="glow-orb orb-1"></span>
    <span class="glow-orb orb-2"></span>

    <div class="workspace-header">
      <span class="eyebrow" id="stepEyebrow"><span class="dot"></span> Step 1 of 3</span>
      <h1>Upload a vehicle photo</h1>
      <p>We'll detect and classify damage, then hand you a full report.</p>
    </div>

    <section class="card workspace-card glass-card">
      <div class="dropzone" id="dropzone" tabindex="0" role="button" aria-label="Upload vehicle image">
        <input type="file" id="imageInput" accept="image/*" hidden>
        <div class="dropzone-empty" id="dropzoneEmpty">
          <div class="upload-icon">
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
              <path d="M12 15V4m0 0 4 4m-4-4-4 4" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
              <path d="M4 16v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
            </svg>
          </div>
          <p class="dropzone-title">Drag &amp; drop a vehicle photo, or click to browse</p>
          <p class="dropzone-hint">JPG, PNG or WebP</p>
        </div>
        <div class="dropzone-preview" id="dropzonePreview" hidden>
          <div class="dropzone-preview-frame">
            <img id="previewImage" alt="Selected vehicle image">
            <div class="scan-overlay" id="scanOverlay">
              <div class="scan-line"></div>
              <span class="scan-overlay-label">Analyzing…</span>
            </div>
          </div>
          <div class="dropzone-preview-meta">
            <span id="previewFileName"></span>
            <span class="dot-sep">·</span>
            <span id="previewFileInfo" class="mono"></span>
            <button type="button" class="btn-ghost" id="changeImageBtn">Change image</button>
          </div>
        </div>
      </div>

      <details class="advanced">
        <summary>Advanced detection settings</summary>
        <div class="advanced-body">
          <label class="checkbox">
            <input type="checkbox" id="resizeCb">
            Resize to 1024px max before inference (faster on large images)
          </label>

          <h4>Per-class confidence thresholds</h4>
          <div id="sliders" class="sliders-grid"></div>

          <div id="legend" class="legend"></div>
        </div>
      </details>

      <button id="runBtn" class="btn-primary btn-block" disabled>Analyze Image</button>
    </section>
  </main>

  <div class="toast-stack" id="toastStack" aria-live="polite"></div>

  <script src="js/ui.js"></script>
  <script src="js/workspace.js"></script>
</body>
</html>