@industry-theme/file-city-panel 0.2.10 → 0.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"CodeCityPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CodeCityPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAsBjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAYpD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA+sCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAEvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EA8BxC,CAAC"}
1
+ {"version":3,"file":"CodeCityPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CodeCityPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAqBjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAYpD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAspCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAEvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EA8BxC,CAAC"}
@@ -106,7 +106,7 @@ const createLucideIcon = (iconName, iconNode) => {
106
106
  * This source code is licensed under the ISC license.
107
107
  * See the LICENSE file in the root directory of this source tree.
108
108
  */
109
- const __iconNode$6 = [
109
+ const __iconNode$5 = [
110
110
  [
111
111
  "path",
112
112
  {
@@ -115,14 +115,14 @@ const __iconNode$6 = [
115
115
  }
116
116
  ]
117
117
  ];
118
- const Activity = createLucideIcon("activity", __iconNode$6);
118
+ const Activity = createLucideIcon("activity", __iconNode$5);
119
119
  /**
120
120
  * @license lucide-react v0.552.0 - ISC
121
121
  *
122
122
  * This source code is licensed under the ISC license.
123
123
  * See the LICENSE file in the root directory of this source tree.
124
124
  */
125
- const __iconNode$5 = [
125
+ const __iconNode$4 = [
126
126
  ["path", { d: "M10 12h4", key: "a56b0p" }],
127
127
  ["path", { d: "M10 8h4", key: "1sr2af" }],
128
128
  ["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
@@ -135,28 +135,20 @@ const __iconNode$5 = [
135
135
  ],
136
136
  ["path", { d: "M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16", key: "16ra0t" }]
137
137
  ];
138
- const Building2 = createLucideIcon("building-2", __iconNode$5);
138
+ const Building2 = createLucideIcon("building-2", __iconNode$4);
139
139
  /**
140
140
  * @license lucide-react v0.552.0 - ISC
141
141
  *
142
142
  * This source code is licensed under the ISC license.
143
143
  * See the LICENSE file in the root directory of this source tree.
144
144
  */
145
- const __iconNode$4 = [
145
+ const __iconNode$3 = [
146
146
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
147
147
  ["path", { d: "M18 17V9", key: "2bz60n" }],
148
148
  ["path", { d: "M13 17V5", key: "1frdt8" }],
149
149
  ["path", { d: "M8 17v-3", key: "17ska0" }]
150
150
  ];
151
- const ChartColumn = createLucideIcon("chart-column", __iconNode$4);
152
- /**
153
- * @license lucide-react v0.552.0 - ISC
154
- *
155
- * This source code is licensed under the ISC license.
156
- * See the LICENSE file in the root directory of this source tree.
157
- */
158
- const __iconNode$3 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
159
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$3);
151
+ const ChartColumn = createLucideIcon("chart-column", __iconNode$3);
160
152
  /**
161
153
  * @license lucide-react v0.552.0 - ISC
162
154
  *
@@ -14582,9 +14574,8 @@ const CodeCityPanelContent = ({
14582
14574
  const [loading, setLoading] = useState(false);
14583
14575
  const [containerSize, setContainerSize] = useState(null);
14584
14576
  const contentContainerRef = useRef(null);
14585
- const [colorMode, setColorMode] = useState("fileTypes");
14586
- const [showColorModeDropdown, setShowColorModeDropdown] = useState(false);
14587
- const colorModeDropdownRef = useRef(null);
14577
+ const sliceSelectedColorMode = (_b = (_a = context.getSlice("fileCityColorModes")) == null ? void 0 : _a.data) == null ? void 0 : _b.selectedColorMode;
14578
+ const colorMode = sliceSelectedColorMode || "fileTypes";
14588
14579
  const [hoveredPackagePath, setHoveredPackagePath] = useState(null);
14589
14580
  const [selectedPackagePath, setSelectedPackagePath] = useState(null);
14590
14581
  useEffect(() => {
@@ -14625,12 +14616,12 @@ const CodeCityPanelContent = ({
14625
14616
  const gitSlice = context.getSlice("git");
14626
14617
  const agentHighlightLayersSlice = context.getSlice("agentHighlightLayers");
14627
14618
  const colorModesSlice = context.getSlice("fileCityColorModes");
14628
- const qualityData = (_a = colorModesSlice == null ? void 0 : colorModesSlice.data) == null ? void 0 : _a.qualityData;
14619
+ const qualityData = (_c = colorModesSlice == null ? void 0 : colorModesSlice.data) == null ? void 0 : _c.qualityData;
14629
14620
  const fileColorLayersRegistered = useRef(false);
14630
14621
  const gitLayersRegistered = useRef(false);
14631
14622
  const agentLayersRegistered = useRef(false);
14632
14623
  const lastHasGitOrAgentLayers = useRef(null);
14633
- const currentRepoPath = (_b = context.currentScope.repository) == null ? void 0 : _b.path;
14624
+ const currentRepoPath = (_d = context.currentScope.repository) == null ? void 0 : _d.path;
14634
14625
  const lastRepoPath = useRef(currentRepoPath);
14635
14626
  useEffect(() => {
14636
14627
  if (lastRepoPath.current !== currentRepoPath) {
@@ -14640,20 +14631,8 @@ const CodeCityPanelContent = ({
14640
14631
  agentLayersRegistered.current = false;
14641
14632
  lastHasGitOrAgentLayers.current = null;
14642
14633
  lastRepoPath.current = currentRepoPath;
14643
- setColorMode("fileTypes");
14644
14634
  }
14645
14635
  }, [currentRepoPath]);
14646
- useEffect(() => {
14647
- const handleClickOutside = (event) => {
14648
- if (colorModeDropdownRef.current && !colorModeDropdownRef.current.contains(event.target)) {
14649
- setShowColorModeDropdown(false);
14650
- }
14651
- };
14652
- if (showColorModeDropdown) {
14653
- document.addEventListener("mousedown", handleClickOutside);
14654
- return () => document.removeEventListener("mousedown", handleClickOutside);
14655
- }
14656
- }, [showColorModeDropdown]);
14657
14636
  useEffect(() => {
14658
14637
  if (!events) return;
14659
14638
  const cleanupHover = events.on("package:hover", (event) => {
@@ -14669,29 +14648,6 @@ const CodeCityPanelContent = ({
14669
14648
  cleanupSelect == null ? void 0 : cleanupSelect();
14670
14649
  };
14671
14650
  }, [events]);
14672
- const sliceSelectedColorMode = (_c = colorModesSlice == null ? void 0 : colorModesSlice.data) == null ? void 0 : _c.selectedColorMode;
14673
- useEffect(() => {
14674
- if (sliceSelectedColorMode) {
14675
- setColorMode(sliceSelectedColorMode);
14676
- }
14677
- }, [sliceSelectedColorMode]);
14678
- const availableColorModes = useMemo(() => {
14679
- var _a2;
14680
- const hasGitData = (gitSlice == null ? void 0 : gitSlice.data) && (gitSlice.data.staged.length > 0 || gitSlice.data.unstaged.length > 0 || gitSlice.data.untracked.length > 0 || gitSlice.data.deleted.length > 0);
14681
- const enabledModes = (_a2 = colorModesSlice == null ? void 0 : colorModesSlice.data) == null ? void 0 : _a2.enabledModes;
14682
- return COLOR_MODES.filter((mode) => {
14683
- if (mode.id === "fileTypes") return true;
14684
- if (mode.id === "git") return hasGitData;
14685
- if (sliceSelectedColorMode === mode.id) return true;
14686
- return (enabledModes == null ? void 0 : enabledModes.includes(mode.id)) ?? false;
14687
- });
14688
- }, [gitSlice == null ? void 0 : gitSlice.data, (_d = colorModesSlice == null ? void 0 : colorModesSlice.data) == null ? void 0 : _d.enabledModes, qualityData, sliceSelectedColorMode]);
14689
- useEffect(() => {
14690
- const currentModeAvailable = availableColorModes.some((m) => m.id === colorMode);
14691
- if (!currentModeAvailable) {
14692
- setColorMode("fileTypes");
14693
- }
14694
- }, [availableColorModes, colorMode]);
14695
14651
  const currentColorModeConfig = useMemo(() => {
14696
14652
  return COLOR_MODES.find((m) => m.id === colorMode) || COLOR_MODES[0];
14697
14653
  }, [colorMode]);
@@ -14906,30 +14862,39 @@ const CodeCityPanelContent = ({
14906
14862
  groupedByExt.forEach((group, ext) => {
14907
14863
  var _a2;
14908
14864
  if (group.primary) {
14865
+ const highlightLayer = highlightLayers.find(
14866
+ (l) => l.id === `ext-${ext}-primary` || l.id === `ext-${ext}-primary-package-focus`
14867
+ );
14868
+ const isEnabled = (highlightLayer == null ? void 0 : highlightLayer.enabled) ?? group.primary.enabled;
14909
14869
  fileTypes.push({
14910
14870
  id: ext,
14911
14871
  name: group.primary.name,
14912
14872
  fillColor: group.primary.color,
14913
14873
  borderColor: (_a2 = group.secondary) == null ? void 0 : _a2.color,
14914
14874
  count: group.primary.items.length,
14915
- enabled: group.primary.enabled
14875
+ enabled: isEnabled
14916
14876
  });
14917
14877
  }
14918
14878
  });
14919
14879
  return fileTypes.sort((a, b) => b.count - a.count);
14920
- }, [baseLayers]);
14880
+ }, [baseLayers, highlightLayers]);
14921
14881
  const legendGitStatus = useMemo(() => {
14922
14882
  const gitLayers = baseLayers.filter(
14923
14883
  (layer) => layer.id.startsWith("git-highlight-")
14924
14884
  );
14925
- return gitLayers.map((layer) => ({
14926
- id: layer.id,
14927
- name: layer.name,
14928
- color: layer.color,
14929
- count: layer.items.length,
14930
- enabled: layer.enabled
14931
- }));
14932
- }, [baseLayers]);
14885
+ return gitLayers.map((layer) => {
14886
+ const highlightLayer = highlightLayers.find(
14887
+ (l) => l.id === layer.id || l.id === `${layer.id}-package-focus`
14888
+ );
14889
+ return {
14890
+ id: layer.id,
14891
+ name: layer.name,
14892
+ color: layer.color,
14893
+ count: layer.items.length,
14894
+ enabled: (highlightLayer == null ? void 0 : highlightLayer.enabled) ?? layer.enabled
14895
+ };
14896
+ });
14897
+ }, [baseLayers, highlightLayers]);
14933
14898
  const legendAgentLayers = useMemo(() => {
14934
14899
  const agentLayers = highlightLayers.filter(
14935
14900
  (layer) => layer.id.startsWith("event-highlight")
@@ -14960,33 +14925,54 @@ const CodeCityPanelContent = ({
14960
14925
  const relevantLayers = baseLayers.filter(
14961
14926
  (layer) => layer.id.startsWith(prefix)
14962
14927
  );
14963
- return relevantLayers.map((layer) => ({
14964
- id: layer.id,
14965
- name: layer.name,
14966
- color: layer.color,
14967
- count: layer.items.length,
14968
- enabled: layer.enabled
14969
- }));
14970
- }, [baseLayers, colorMode]);
14928
+ return relevantLayers.map((layer) => {
14929
+ const highlightLayer = highlightLayers.find(
14930
+ (l) => l.id === layer.id || l.id === `${layer.id}-package-focus`
14931
+ );
14932
+ return {
14933
+ id: layer.id,
14934
+ name: layer.name,
14935
+ color: layer.color,
14936
+ count: layer.items.length,
14937
+ enabled: (highlightLayer == null ? void 0 : highlightLayer.enabled) ?? layer.enabled
14938
+ };
14939
+ });
14940
+ }, [baseLayers, highlightLayers, colorMode]);
14971
14941
  const toggleGitStatus = useCallback((id2) => {
14972
- setHighlightLayers(
14973
- (prev) => prev.map((layer) => {
14974
- if (layer.id === id2) {
14975
- return { ...layer, enabled: !layer.enabled };
14942
+ setHighlightLayers((prev) => {
14943
+ const gitLayers = prev.filter((l) => l.id.startsWith("git-highlight-"));
14944
+ const clickedLayer = gitLayers.find((l) => l.id === id2);
14945
+ const otherGitLayers = gitLayers.filter((l) => l.id !== id2);
14946
+ const isAlreadyIsolated = (clickedLayer == null ? void 0 : clickedLayer.enabled) && otherGitLayers.every((l) => !l.enabled);
14947
+ return prev.map((layer) => {
14948
+ if (!layer.id.startsWith("git-highlight-")) {
14949
+ return layer;
14976
14950
  }
14977
- return layer;
14978
- })
14979
- );
14951
+ if (isAlreadyIsolated) {
14952
+ return { ...layer, enabled: true };
14953
+ } else {
14954
+ return { ...layer, enabled: layer.id === id2 };
14955
+ }
14956
+ });
14957
+ });
14980
14958
  }, []);
14981
14959
  const toggleAgentLayer = useCallback((id2) => {
14982
- setHighlightLayers(
14983
- (prev) => prev.map((layer) => {
14984
- if (layer.id === id2) {
14985
- return { ...layer, enabled: !layer.enabled };
14960
+ setHighlightLayers((prev) => {
14961
+ const agentLayers = prev.filter((l) => l.id.startsWith("event-highlight"));
14962
+ const clickedLayer = agentLayers.find((l) => l.id === id2);
14963
+ const otherAgentLayers = agentLayers.filter((l) => l.id !== id2);
14964
+ const isAlreadyIsolated = (clickedLayer == null ? void 0 : clickedLayer.enabled) && otherAgentLayers.every((l) => !l.enabled);
14965
+ return prev.map((layer) => {
14966
+ if (!layer.id.startsWith("event-highlight")) {
14967
+ return layer;
14986
14968
  }
14987
- return layer;
14988
- })
14989
- );
14969
+ if (isAlreadyIsolated) {
14970
+ return { ...layer, enabled: true };
14971
+ } else {
14972
+ return { ...layer, enabled: layer.id === id2 };
14973
+ }
14974
+ });
14975
+ });
14990
14976
  }, []);
14991
14977
  const clearAgentLayers = useCallback(() => {
14992
14978
  setHighlightLayers(
@@ -14995,24 +14981,52 @@ const CodeCityPanelContent = ({
14995
14981
  agentLayersRegistered.current = false;
14996
14982
  }, []);
14997
14983
  const toggleQualityMetric = useCallback((id2) => {
14998
- setHighlightLayers(
14999
- (prev) => prev.map((layer) => {
15000
- if (layer.id === id2) {
15001
- return { ...layer, enabled: !layer.enabled };
14984
+ setHighlightLayers((prev) => {
14985
+ const qualityPrefixes = ["coverage-", "eslint-", "typescript-", "prettier-", "knip-", "alexandria-"];
14986
+ const isQualityLayer = (layerId) => qualityPrefixes.some((p) => layerId.startsWith(p));
14987
+ const qualityLayers2 = prev.filter((l) => isQualityLayer(l.id));
14988
+ const clickedLayer = qualityLayers2.find((l) => l.id === id2);
14989
+ const otherQualityLayers = qualityLayers2.filter((l) => l.id !== id2);
14990
+ const isAlreadyIsolated = (clickedLayer == null ? void 0 : clickedLayer.enabled) && otherQualityLayers.every((l) => !l.enabled);
14991
+ return prev.map((layer) => {
14992
+ if (!isQualityLayer(layer.id)) {
14993
+ return layer;
15002
14994
  }
15003
- return layer;
15004
- })
15005
- );
14995
+ if (isAlreadyIsolated) {
14996
+ return { ...layer, enabled: true };
14997
+ } else {
14998
+ return { ...layer, enabled: layer.id === id2 };
14999
+ }
15000
+ });
15001
+ });
15006
15002
  }, []);
15007
15003
  const toggleFileType = useCallback((ext) => {
15008
15004
  setHighlightLayers((prev) => {
15009
- const primaryLayer = prev.find((l) => l.id === `ext-${ext}-primary`);
15010
- const newEnabled = primaryLayer ? !primaryLayer.enabled : true;
15005
+ const isFileTypeLayer = (id2) => id2.startsWith("ext-") && (id2.endsWith("-primary") || id2.endsWith("-secondary"));
15006
+ const fileTypeLayers = prev.filter((l) => isFileTypeLayer(l.id));
15007
+ const extStates = /* @__PURE__ */ new Map();
15008
+ fileTypeLayers.forEach((l) => {
15009
+ const match = l.id.match(/^ext-(\w+)-(primary|secondary)$/);
15010
+ if (match && match[2] === "primary") {
15011
+ extStates.set(match[1], l.enabled);
15012
+ }
15013
+ });
15014
+ const clickedEnabled = extStates.get(ext) ?? false;
15015
+ const otherExts = Array.from(extStates.keys()).filter((e) => e !== ext);
15016
+ const othersAllDisabled = otherExts.every((e) => !extStates.get(e));
15017
+ const isAlreadyIsolated = clickedEnabled && othersAllDisabled;
15011
15018
  return prev.map((layer) => {
15012
- if (layer.id === `ext-${ext}-primary` || layer.id === `ext-${ext}-secondary`) {
15013
- return { ...layer, enabled: newEnabled };
15019
+ if (!isFileTypeLayer(layer.id)) {
15020
+ return layer;
15021
+ }
15022
+ const match = layer.id.match(/^ext-(\w+)-(primary|secondary)$/);
15023
+ if (!match) return layer;
15024
+ const layerExt = match[1];
15025
+ if (isAlreadyIsolated) {
15026
+ return { ...layer, enabled: true };
15027
+ } else {
15028
+ return { ...layer, enabled: layerExt === ext };
15014
15029
  }
15015
- return layer;
15016
15030
  });
15017
15031
  });
15018
15032
  }, []);
@@ -15184,117 +15198,18 @@ const CodeCityPanelContent = ({
15184
15198
  }
15185
15199
  )
15186
15200
  ] }) }),
15187
- availableColorModes.length > 1 && /* @__PURE__ */ jsxs(
15188
- "div",
15201
+ colorMode !== "fileTypes" && /* @__PURE__ */ jsx(
15202
+ "span",
15189
15203
  {
15190
- ref: colorModeDropdownRef,
15191
- style: { position: "relative" },
15192
- children: [
15193
- /* @__PURE__ */ jsxs(
15194
- "button",
15195
- {
15196
- onClick: () => setShowColorModeDropdown(!showColorModeDropdown),
15197
- style: {
15198
- display: "flex",
15199
- alignItems: "center",
15200
- gap: "6px",
15201
- padding: "4px 10px",
15202
- fontSize: theme2.fontSizes[0],
15203
- fontFamily: theme2.fonts.body,
15204
- color: theme2.colors.text,
15205
- backgroundColor: theme2.colors.background,
15206
- border: `1px solid ${theme2.colors.border}`,
15207
- borderRadius: "4px",
15208
- cursor: "pointer",
15209
- transition: "all 0.15s ease",
15210
- minWidth: "120px"
15211
- },
15212
- title: "Change color mode",
15213
- children: [
15214
- /* @__PURE__ */ jsx("span", { style: { flex: 1, textAlign: "left" }, children: currentColorModeConfig.name }),
15215
- /* @__PURE__ */ jsx(
15216
- ChevronDown,
15217
- {
15218
- size: 14,
15219
- style: {
15220
- transform: showColorModeDropdown ? "rotate(180deg)" : "rotate(0deg)",
15221
- transition: "transform 0.15s ease"
15222
- }
15223
- }
15224
- )
15225
- ]
15226
- }
15227
- ),
15228
- showColorModeDropdown && /* @__PURE__ */ jsx(
15229
- "div",
15230
- {
15231
- style: {
15232
- position: "absolute",
15233
- top: "100%",
15234
- left: 0,
15235
- right: 0,
15236
- marginTop: "4px",
15237
- backgroundColor: theme2.colors.background,
15238
- border: `1px solid ${theme2.colors.border}`,
15239
- borderRadius: "4px",
15240
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
15241
- zIndex: 100,
15242
- overflow: "hidden",
15243
- minWidth: "160px"
15244
- },
15245
- children: availableColorModes.map((mode) => /* @__PURE__ */ jsxs(
15246
- "button",
15247
- {
15248
- onClick: () => {
15249
- setColorMode(mode.id);
15250
- setShowColorModeDropdown(false);
15251
- },
15252
- style: {
15253
- display: "flex",
15254
- flexDirection: "column",
15255
- alignItems: "flex-start",
15256
- width: "100%",
15257
- padding: "8px 12px",
15258
- fontSize: theme2.fontSizes[0],
15259
- fontFamily: theme2.fonts.body,
15260
- color: mode.id === colorMode ? theme2.colors.primary : theme2.colors.text,
15261
- backgroundColor: mode.id === colorMode ? theme2.colors.primary + "15" : "transparent",
15262
- border: "none",
15263
- cursor: "pointer",
15264
- transition: "background-color 0.15s ease",
15265
- textAlign: "left"
15266
- },
15267
- onMouseEnter: (e) => {
15268
- if (mode.id !== colorMode) {
15269
- e.currentTarget.style.backgroundColor = theme2.colors.backgroundLight;
15270
- }
15271
- },
15272
- onMouseLeave: (e) => {
15273
- if (mode.id !== colorMode) {
15274
- e.currentTarget.style.backgroundColor = "transparent";
15275
- }
15276
- },
15277
- children: [
15278
- /* @__PURE__ */ jsx("span", { style: { fontWeight: mode.id === colorMode ? 600 : 400 }, children: mode.name }),
15279
- /* @__PURE__ */ jsx(
15280
- "span",
15281
- {
15282
- style: {
15283
- fontSize: theme2.fontSizes[0],
15284
- fontFamily: theme2.fonts.body,
15285
- color: theme2.colors.textSecondary,
15286
- marginTop: "2px"
15287
- },
15288
- children: mode.description
15289
- }
15290
- )
15291
- ]
15292
- },
15293
- mode.id
15294
- ))
15295
- }
15296
- )
15297
- ]
15204
+ style: {
15205
+ padding: "4px 10px",
15206
+ fontSize: theme2.fontSizes[0],
15207
+ fontFamily: theme2.fonts.body,
15208
+ color: theme2.colors.primary,
15209
+ backgroundColor: theme2.colors.primary + "15",
15210
+ borderRadius: "4px"
15211
+ },
15212
+ children: currentColorModeConfig.name
15298
15213
  }
15299
15214
  ),
15300
15215
  (legendFileTypes.length > 0 || legendGitStatus.length > 0 || legendQualityMetrics.length > 0) && /* @__PURE__ */ jsx(