@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.
- package/dist/panels/CodeCityPanel.d.ts.map +1 -1
- package/dist/panels.bundle.js +123 -208
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeCityPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CodeCityPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,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"}
|
package/dist/panels.bundle.js
CHANGED
|
@@ -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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
14586
|
-
const
|
|
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 = (
|
|
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 = (
|
|
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:
|
|
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
|
-
|
|
14927
|
-
|
|
14928
|
-
|
|
14929
|
-
|
|
14930
|
-
|
|
14931
|
-
|
|
14932
|
-
|
|
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
|
-
|
|
14965
|
-
|
|
14966
|
-
|
|
14967
|
-
|
|
14968
|
-
|
|
14969
|
-
|
|
14970
|
-
|
|
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
|
-
|
|
14974
|
-
|
|
14975
|
-
|
|
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
|
-
|
|
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
|
-
|
|
14984
|
-
|
|
14985
|
-
|
|
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
|
-
|
|
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
|
-
|
|
15000
|
-
|
|
15001
|
-
|
|
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
|
-
|
|
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
|
|
15010
|
-
const
|
|
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
|
|
15013
|
-
return
|
|
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
|
-
|
|
15188
|
-
"
|
|
15201
|
+
colorMode !== "fileTypes" && /* @__PURE__ */ jsx(
|
|
15202
|
+
"span",
|
|
15189
15203
|
{
|
|
15190
|
-
|
|
15191
|
-
|
|
15192
|
-
|
|
15193
|
-
|
|
15194
|
-
|
|
15195
|
-
|
|
15196
|
-
|
|
15197
|
-
|
|
15198
|
-
|
|
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(
|