HWLab — Dashboard loading…
+Item detail loading…
+Intake wizard loading…
+QR Scanner loading…
+{item.hw_id || item.asset_tag}
+{item.ai_notes}
+ )} +All cataloged hardware in your homelab
+0
++ {items && items.length > 0 ? 'No items match your filters' : 'No items cataloged yet — add your first item'} +
+{item.hw_id || item.asset_tag}
+No photos
+{item.ai_notes}
+
+ {(() => {
+ try { return JSON.stringify(JSON.parse(item.test_data!), null, 2) }
+ catch { return item.test_data }
+ })()}
+
+ + {isDragActive + ? 'Drop photos here' + : disabled + ? 'Maximum 3 photos reached' + : 'Drag photos or tap to shoot'} +
++ {disabled ? '' : `${remaining} of ${MAX} slots remaining · JPEG, PNG, WebP`} +
++ Low confidence — item will be flagged for research +
+ )} +{result.ai_notes}
+Upload 1–3 photos — AI extracts specs automatically
+Analyzing photos…
+Gemma 4 is extracting specs
++ NetBox was unavailable — item is queued for sync +
+ )} +