@@ -14569,23 +14569,27 @@ var keepCircleInsideCircle = (parentR, parentPosition, childR, childPosition) =>
14569
14569
14570
14570
// src/Tree.tsx
14571
14571
var fileColors = {
14572
- ts: "#45aaf2 ",
14573
- tsx: "#0fb9b1 ",
14574
- js: "#6473F2 ",
14575
- jsx: "#3dc1d3 ",
14576
- md: "#FFC312 ",
14577
- json: "#E15F41 ",
14578
- csv: "#D8C959 ",
14579
- svg: "#EA4C85 ",
14580
- css: "#E97BF2 ",
14581
- svelte: "#D9D2C2 ",
14572
+ ts: "#29CBBA ",
14573
+ tsx: "#12B9B1 ",
14574
+ js: "#CE83F1 ",
14575
+ jsx: "#C56BF0 ",
14576
+ md: "#6473F2 ",
14577
+ json: "#FDA7DF ",
14578
+ csv: "#D980FA ",
14579
+ svg: "#FFC312 ",
14580
+ css: "#C3E438 ",
14581
+ svelte: "#B53471 ",
14582
14582
scss: "#9980FA",
14583
- html: "#ffb8b8",
14584
- go: "#c7ecee",
14583
+ html: "#C7ECEE",
14584
+ png: "#45aaf2",
14585
+ jpg: "#3dc1d3",
14586
+ go: "#E67E23",
14585
14587
rb: "#eb4d4b",
14586
- m: "#0fb9b1",
14587
- py: "#9980FA",
14588
- sh: "#badc58"
14588
+ sh: "#badc58",
14589
+ m: "#FFD428",
14590
+ py: "#5758BB",
14591
+ mp4: "#788BA3",
14592
+ webm: "#4B6584"
14589
14593
};
14590
14594
var colorTheme = "file";
14591
14595
var looseFilesId = "__structure_loose_file__";
@@ -14603,9 +14607,9 @@ var Tree = ({ data, filesChanged = [] }) => {
14603
14607
if (isParent) {
14604
14608
const extensions = (0, import_countBy.default)(d.children, (c2) => c2.extension);
14605
14609
const mainExtension = (_a = (0, import_maxBy.default)((0, import_entries.default)(extensions), ([k, v]) => v)) == null ? void 0 : _a[0];
14606
- return fileColors[mainExtension] || "#b4b4b6 ";
14610
+ return fileColors[mainExtension] || "#CED6E0 ";
14607
14611
}
14608
- return fileColors[d.extension] || "#b4b4b6 ";
14612
+ return fileColors[d.extension] || "#CED6E0 ";
14609
14613
} else if (colorTheme === "changes") {
14610
14614
const scale = linear2().domain([0, 50]).range(["#f4f4f4", "#0fb9b1"]).clamp(true);
14611
14615
const numberOfChanges = (_b = d == null ? void 0 : d.commits) == null ? void 0 : _b.length;
@@ -14763,18 +14767,42 @@ var Tree = ({ data, filesChanged = [] }) => {
14763
14767
opacity: "0.2",
14764
14768
strokeWidth: "1",
14765
14769
fill: "none"
14766
- }) : /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement( "circle", {
14770
+ }) : /* @__PURE__ */ import_react2.default.createElement("circle", {
14767
14771
style: {
14768
14772
filter: isHighlighted ? "url(#glow)" : void 0,
14769
14773
transition: "all 0.5s ease-out"
14770
14774
},
14771
14775
r: runningR,
14772
14776
strokeWidth: selectedNodeId === data2.path ? 3 : 0,
14773
14777
stroke: "#374151"
14774
- }), (isHighlighted || !doHighlight && r > 30 || isInActiveImport) && /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement("text", {
14778
+ }));
14779
+ }), packedData.map(({ x: x2, y: y2, r, depth, data: data2, children: children2 }) => {
14780
+ if (depth <= 0)
14781
+ return null;
14782
+ if (depth > maxDepth)
14783
+ return null;
14784
+ const isParent = !!children2 && depth !== maxDepth;
14785
+ let runningR = r;
14786
+ if (data2.path === looseFilesId)
14787
+ return null;
14788
+ const isHighlighted = filesChanged.includes(data2.path);
14789
+ const doHighlight = !!filesChanged.length;
14790
+ const isInActiveImport = !!imports.find((i) => i.path === data2.path || i.toPath === data2.path);
14791
+ if (isParent)
14792
+ return null;
14793
+ if (!(isHighlighted || !doHighlight && !selectedNode && r > 30 || isInActiveImport))
14794
+ return null;
14795
+ return /* @__PURE__ */ import_react2.default.createElement("g", {
14796
+ key: data2.path,
14797
+ style: {
14798
+ fill: doHighlight ? isHighlighted ? "#FCE68A" : "#29081916" : data2.color,
14799
+ transition: `transform ${isHighlighted ? "0.5s" : "0s"} ease-out, fill 0.1s ease-out`
14800
+ },
14801
+ transform: `translate(${x2}, ${y2})`
14802
+ }, /* @__PURE__ */ import_react2.default.createElement("text", {
14775
14803
style: {
14776
14804
pointerEvents: "none",
14777
- opacity: 0.8 ,
14805
+ opacity: 0.9 ,
14778
14806
fontSize: "14px",
14779
14807
fontWeight: 500,
14780
14808
transition: "all 0.5s ease-out"
@@ -14783,30 +14811,31 @@ var Tree = ({ data, filesChanged = [] }) => {
14783
14811
textAnchor: "middle",
14784
14812
dominantBaseline: "middle",
14785
14813
stroke: "white",
14786
- strokeWidth: "3"
14814
+ strokeWidth: "3",
14815
+ strokeLinejoin: "round"
14787
14816
}, data2.label), /* @__PURE__ */ import_react2.default.createElement("text", {
14788
14817
style: {
14789
14818
pointerEvents: "none",
14790
- opacity: 0.8 ,
14819
+ opacity: 1 ,
14791
14820
fontSize: "14px",
14792
14821
fontWeight: 500,
14793
14822
transition: "all 0.5s ease-out"
14794
14823
},
14795
- fill: "#4B5563",
14796
14824
textAnchor: "middle",
14797
14825
dominantBaseline: "middle"
14798
14826
}, data2.label), /* @__PURE__ */ import_react2.default.createElement("text", {
14799
14827
style: {
14800
14828
pointerEvents: "none",
14801
- opacity: 0.8 ,
14829
+ opacity: 0.9 ,
14802
14830
fontSize: "14px",
14803
14831
fontWeight: 500,
14804
- mixBlendMode: "multiply ",
14832
+ mixBlendMode: "color-burn ",
14805
14833
transition: "all 0.5s ease-out"
14806
14834
},
14835
+ fill: "#110101",
14807
14836
textAnchor: "middle",
14808
14837
dominantBaseline: "middle"
14809
- }, data2.label)))) ;
14838
+ }, data2.label));
14810
14839
}), imports.map(({ x: x2, y: y2, d, path, toPath, color: color2 }) => {
14811
14840
return /* @__PURE__ */ import_react2.default.createElement("g", {
14812
14841
style: {
@@ -14841,23 +14870,23 @@ var Tree = ({ data, filesChanged = [] }) => {
14841
14870
return null;
14842
14871
if (data2.path === looseFilesId)
14843
14872
return null;
14844
- if (r < 20 && selectedNodeId !== data2.path)
14873
+ if (r < 10 && selectedNodeId !== data2.path)
14845
14874
return null;
14846
14875
return /* @__PURE__ */ import_react2.default.createElement("g", {
14847
14876
key: data2.path,
14848
14877
style: { pointerEvents: "none", transition: "all 0.5s ease-out" },
14849
14878
transform: `translate(${x2}, ${y2})`
14850
14879
}, /* @__PURE__ */ import_react2.default.createElement(CircleText, {
14851
14880
style: { fontSize: "14px", transition: "all 0.5s ease-out" },
14852
- r: r - 3,
14881
+ r: Math.max(20, r - 3) ,
14853
14882
fill: "#374151",
14854
14883
stroke: "white",
14855
14884
strokeWidth: "6",
14856
14885
text: data2.label
14857
14886
}), /* @__PURE__ */ import_react2.default.createElement(CircleText, {
14858
14887
style: { fontSize: "14px", transition: "all 0.5s ease-out" },
14859
14888
fill: "#374151",
14860
- r: r - 3,
14889
+ r: Math.max(20, r - 3) ,
14861
14890
text: data2.label
14862
14891
}));
14863
14892
}), !!selectedNode && (!selectedNode.children || selectedNode.depth === maxDepth) && /* @__PURE__ */ import_react2.default.createElement("g", {
0 commit comments