fix(internal/godocfx): only put TOC status on mod if all pkgs have same status (#4974)

diff --git a/internal/godocfx/parse.go b/internal/godocfx/parse.go
index 884ac0b..067208c 100644
--- a/internal/godocfx/parse.go
+++ b/internal/godocfx/parse.go
@@ -543,9 +543,23 @@
 func buildTOC(mod string, pis []pkgload.Info, extraFiles []extraFile) tableOfContents {
 	toc := tableOfContents{}
 
+	// If all of the packages have the same status, only put the status on
+	// the module instead of all of the individual packages.
+	uniqueStatuses := map[string]struct{}{}
+	for _, pi := range pis {
+		uniqueStatuses[pi.Status] = struct{}{}
+	}
+	modStatus := ""
+	if len(uniqueStatuses) == 1 {
+		for status := range uniqueStatuses {
+			modStatus = status
+		}
+	}
+
 	modTOC := &tocItem{
-		UID:  mod,
-		Name: mod,
+		UID:    mod,
+		Name:   mod,
+		Status: modStatus,
 	}
 
 	for _, ef := range extraFiles {
@@ -563,10 +577,14 @@
 		importPath := pi.Doc.ImportPath
 		if importPath == mod {
 			// Add the module root package immediately with the full name.
+			rootPkgStatus := pi.Status
+			if modStatus != "" {
+				rootPkgStatus = ""
+			}
 			modTOC.addItem(&tocItem{
 				UID:    mod,
 				Name:   mod,
-				Status: pi.Status,
+				Status: rootPkgStatus,
 			})
 			continue
 		}
@@ -575,7 +593,9 @@
 		}
 		trimmed := strings.TrimPrefix(importPath, mod+"/")
 		trimmedPkgs = append(trimmedPkgs, trimmed)
-		statuses[trimmed] = pi.Status
+		if modStatus == "" {
+			statuses[trimmed] = pi.Status
+		}
 	}
 
 	sort.Strings(trimmedPkgs)