+ {/* Status badges */}
+
+ {freshSelectedModel.loaded && (
+
+
+ Loaded
+
+ )}
+ {freshSelectedModel.downloaded && !freshSelectedModel.loaded && (
+
+
+ Downloaded
+
+ )}
+ {selectedState?.hasError && (
+
+
+ Error
+
+ )}
+ {!freshSelectedModel.downloaded &&
+ !selectedState?.isDownloading &&
+ !selectedState?.hasError && (
+
+ Not downloaded
+
+ )}
+
+
+ {/* HuggingFace model card info */}
+ {hfLoading && freshSelectedModel.hf_repo_id && (
+
+
+ Loading model info...
+
+ )}
+
+ {hfModelInfo && (
+
+ {/* Stats row */}
+
+
+
+ {formatDownloads(hfModelInfo.downloads)}
+
+
+
+ {formatDownloads(hfModelInfo.likes)}
+
+ {license && (
+
+
+ {formatLicense(license)}
+
+ )}
+
+
+ {/* Pipeline tag + author */}
+
+ {hfModelInfo.pipeline_tag && (
+
+ {formatPipelineTag(hfModelInfo.pipeline_tag)}
+
+ )}
+ {hfModelInfo.library_name && (
+
+ {hfModelInfo.library_name}
+
+ )}
+ {hfModelInfo.author && (
+
+ by {hfModelInfo.author}
+
+ )}
+
+
+ {/* Languages */}
+ {hfModelInfo.cardData?.language && hfModelInfo.cardData.language.length > 0 && (
+
+
+ {hfModelInfo.cardData.language.length > 10
+ ? `${hfModelInfo.cardData.language.length} languages supported`
+ : `Languages: ${hfModelInfo.cardData.language.join(', ')}`}
+
+
+ )}
+
+ )}
+
+ {/* Disk size */}
+ {freshSelectedModel.downloaded && freshSelectedModel.size_mb && (
+
+
+ {formatSize(freshSelectedModel.size_mb)} on disk
+
+ )}
+
+ {/* Error detail */}
+ {selectedError?.error && (
+
+ {selectedError.error}
+
+ )}
+
+ {/* Actions */}
+
+ {selectedState?.hasError ? (
+ <>
+
+
+ >
+ ) : selectedState?.isDownloading ? (
+ <>
+
+ {(() => {
+ const dl = freshSelectedModel
+ ? downloadProgressMap.get(freshSelectedModel.model_name)
+ : undefined;
+ const pct = dl?.progress ?? 0;
+ const hasProgress = dl && dl.total && dl.total > 0;
+ return (
+ <>
+
+
+ {hasProgress
+ ? `${formatBytes(dl.current ?? 0)} / ${formatBytes(dl.total!)} (${pct.toFixed(1)}%)`
+ : dl?.filename || 'Connecting to HuggingFace...'}
+
+ >
+ );
+ })()}
+
+
+ >
+ ) : freshSelectedModel.downloaded ? (
+
+ ) : (
+
+ )}
+
-