@@ -49,7 +49,7 @@ const distTags = computed(() => versionSummary.value?.distTags ?? {})
4949const versionStrings = computed (() => versionSummary .value ?.versions ?? [])
5050const versionTimes = computed (() => versionSummary .value ?.time ?? {})
5151
52- // ─── Phase 2: full metadata (loaded on first group expand) ──────────────── ────
52+ // ─── Phase 2: full metadata (fired automatically after phase 1 completes) ────
5353// Fetches deprecated status, provenance, and exact times needed for version rows.
5454
5555const fullVersionMap = shallowRef < Map <
@@ -100,6 +100,16 @@ const versionGroups = computed(() => {
100100 }))
101101})
102102
103+ const deprecatedGroupKeys = computed (() => {
104+ if (! fullVersionMap .value ) return new Set <string >()
105+ const result = new Set <string >()
106+ for (const group of versionGroups .value ) {
107+ if (group .versions .every (v => !! fullVersionMap .value ! .get (v )?.deprecated ))
108+ result .add (group .groupKey )
109+ }
110+ return result
111+ })
112+
103113function toggleGroup(groupKey : string ) {
104114 if (expandedGroups .value .has (groupKey )) {
105115 expandedGroups .value .delete (groupKey )
@@ -272,8 +282,13 @@ const flatItems = computed<FlatItem[]>(() => {
272282 >{{ latestTagRow!.version }}</LinkBase
273283 >
274284 </div >
275- <!-- Right: date + provenance -->
285+ <!-- Right: deprecated + date + provenance -->
276286 <div class =" flex flex-col items-end gap-1.5 shrink-0 relative z-10" >
287+ <span
288+ v-if =" fullVersionMap?.get(latestTagRow!.version)?.deprecated"
289+ class =" text-3xs font-medium text-red-700 dark:text-red-400 bg-red-100 dark:bg-red-900/30 px-1.5 py-0.5 rounded"
290+ :title =" fullVersionMap!.get(latestTagRow!.version)!.deprecated"
291+ >deprecated</span >
277292 <ProvenanceBadge
278293 v-if =" fullVersionMap?.get(latestTagRow!.version)?.hasProvenance"
279294 :package-name =" packageName"
@@ -323,8 +338,13 @@ const flatItems = computed<FlatItem[]>(() => {
323338 {{ row.version }}
324339 </LinkBase >
325340
326- <!-- Date + Provenance -->
341+ <!-- Deprecated + Date + Provenance -->
327342 <div class =" flex items-center gap-2 shrink-0 relative z-10" >
343+ <span
344+ v-if =" fullVersionMap?.get(row.version)?.deprecated"
345+ class =" text-3xs font-medium text-red-700 dark:text-red-400 bg-red-100 dark:bg-red-900/30 px-1.5 py-0.5 rounded"
346+ :title =" fullVersionMap!.get(row.version)!.deprecated"
347+ >deprecated</span >
328348 <DateTime
329349 v-if =" getVersionTime(row.version)"
330350 :datetime =" getVersionTime(row.version)!"
@@ -399,6 +419,10 @@ const flatItems = computed<FlatItem[]>(() => {
399419 </Transition >
400420 </span >
401421 <span class =" text-sm font-medium" >{{ item.label }}</span >
422+ <span
423+ v-if =" deprecatedGroupKeys.has(item.groupKey)"
424+ class =" text-3xs font-medium text-red-700 dark:text-red-400 bg-red-100 dark:bg-red-900/30 px-1.5 py-0.5 rounded"
425+ >deprecated</span >
402426 <span class =" text-xs text-fg-subtle" >({{ item.versions.length }})</span >
403427 <span class =" ms-auto flex items-center gap-3 shrink-0" >
404428 <span class =" text-xs text-fg-muted" :title =" item.versions[0]" dir =" ltr" >{{
0 commit comments