@@ -15,30 +15,30 @@ interface ImpactPanelProps {
1515
1616const RISK_CONFIG : Record < RiskLevel , { bg : string ; border : string ; text : string ; icon : string ; label : string } > = {
1717 low : {
18- bg : 'bg-emerald-500/10' ,
19- border : 'border-emerald-500/30' ,
20- text : 'text-emerald-400' ,
18+ bg : 'bg-emerald-50 dark:bg-emerald- 500/10' ,
19+ border : 'border-emerald-200 dark:border-emerald- 500/30' ,
20+ text : 'text-emerald-600 dark:text-emerald- 400' ,
2121 icon : '✓' ,
2222 label : 'Low Risk'
2323 } ,
2424 medium : {
25- bg : 'bg-yellow-500/10' ,
26- border : 'border-yellow-500/30' ,
27- text : 'text-yellow-400' ,
25+ bg : 'bg-yellow-50 dark:bg-yellow- 500/10' ,
26+ border : 'border-yellow-200 dark:border-yellow- 500/30' ,
27+ text : 'text-yellow-600 dark:text-yellow- 400' ,
2828 icon : '⚠' ,
2929 label : 'Medium Risk'
3030 } ,
3131 high : {
32- bg : 'bg-orange-500/10' ,
33- border : 'border-orange-500/30' ,
34- text : 'text-orange-400' ,
32+ bg : 'bg-orange-50 dark:bg-orange- 500/10' ,
33+ border : 'border-orange-200 dark:border-orange- 500/30' ,
34+ text : 'text-orange-600 dark:text-orange- 400' ,
3535 icon : '⚠' ,
3636 label : 'High Risk'
3737 } ,
3838 critical : {
39- bg : 'bg-rose-500/10' ,
40- border : 'border-rose-500/30' ,
41- text : 'text-rose-400' ,
39+ bg : 'bg-rose-50 dark:bg-rose- 500/10' ,
40+ border : 'border-rose-200 dark:border-rose- 500/30' ,
41+ text : 'text-rose-600 dark:text-rose- 400' ,
4242 icon : '🔥' ,
4343 label : 'Critical'
4444 } ,
@@ -61,15 +61,15 @@ function FileListItem({
6161 onClick = { onClick }
6262 onMouseEnter = { ( ) => onHover ( true ) }
6363 onMouseLeave = { ( ) => onHover ( false ) }
64- className = "w-full text-left px-3 py-2 rounded-md hover:bg-zinc-800 transition-colors group"
64+ className = "w-full text-left px-3 py-2 rounded-md hover:bg-zinc-100 dark:hover:bg-zinc- 800 transition-colors group"
6565 >
6666 < div className = "flex items-center gap-2" >
67- < FileCode2 className = "w-3.5 h-3.5 text-zinc-500 flex-shrink-0" />
68- < span className = "text-sm text-zinc-200 truncate font-medium" > { fileName } </ span >
69- < ExternalLink className = "w-3 h-3 text-zinc-600 opacity-0 group-hover:opacity-100 transition-opacity ml-auto" />
67+ < FileCode2 className = "w-3.5 h-3.5 text-zinc-400 dark:text-zinc- 500 flex-shrink-0" />
68+ < span className = "text-sm text-zinc-700 dark:text-zinc- 200 truncate font-medium" > { fileName } </ span >
69+ < ExternalLink className = "w-3 h-3 text-zinc-400 dark:text-zinc- 600 opacity-0 group-hover:opacity-100 transition-opacity ml-auto" />
7070 </ div >
7171 { dirPath && (
72- < div className = "text-[10px] text-zinc-500 mt-0.5 truncate pl-5" > { dirPath } </ div >
72+ < div className = "text-[10px] text-zinc-400 dark:text-zinc- 500 mt-0.5 truncate pl-5" > { dirPath } </ div >
7373 ) }
7474 </ button >
7575 )
@@ -95,26 +95,26 @@ function CollapsibleSection({
9595 const [ isOpen , setIsOpen ] = useState ( defaultOpen )
9696
9797 const variantStyles = {
98- direct : 'text-rose-400' ,
99- transitive : 'text-amber-400' ,
100- default : 'text-zinc-300' ,
98+ direct : 'text-rose-600 dark:text-rose- 400' ,
99+ transitive : 'text-amber-600 dark:text-amber- 400' ,
100+ default : 'text-zinc-700 dark:text-zinc- 300' ,
101101 }
102102
103103 if ( count === 0 ) return null
104104
105105 return (
106- < div className = "border-t border-zinc-800 pt-3" >
106+ < div className = "border-t border-zinc-200 dark:border-zinc- 800 pt-3" >
107107 < button
108108 onClick = { ( ) => setIsOpen ( ! isOpen ) }
109- className = "w-full flex items-center gap-2 text-left hover:bg-zinc-800/50 -mx-2 px-2 py-1 rounded transition-colors"
109+ className = "w-full flex items-center gap-2 text-left hover:bg-zinc-100 dark:hover:bg-zinc- 800/50 -mx-2 px-2 py-1 rounded transition-colors"
110110 >
111111 { isOpen ? (
112- < ChevronDown className = "w-4 h-4 text-zinc-500" />
112+ < ChevronDown className = "w-4 h-4 text-zinc-400 dark:text-zinc- 500" />
113113 ) : (
114- < ChevronRight className = "w-4 h-4 text-zinc-500" />
114+ < ChevronRight className = "w-4 h-4 text-zinc-400 dark:text-zinc- 500" />
115115 ) }
116116 < span className = { cn ( 'text-sm font-medium' , variantStyles [ variant ] ) } > { title } </ span >
117- < span className = "text-xs text-zinc-500 ml-auto" > { count } </ span >
117+ < span className = "text-xs text-zinc-400 dark:text-zinc- 500 ml-auto" > { count } </ span >
118118 </ button >
119119
120120 { isOpen && (
@@ -146,23 +146,23 @@ function ImpactPanelComponent({
146146 const totalDependents = impact . allDependents . length
147147
148148 return (
149- < div className = "w-80 bg-zinc-900 border-l border-zinc-800 h-full flex flex-col animate-in slide-in-from-right duration-200" >
149+ < div className = "w-80 bg-white dark:bg- zinc-900 border-l border-zinc-200 dark: border-zinc-800 h-full flex flex-col animate-in slide-in-from-right duration-200" >
150150 { /* Header */ }
151- < div className = "p-4 border-b border-zinc-800" >
151+ < div className = "p-4 border-b border-zinc-200 dark:border-zinc- 800" >
152152 < div className = "flex items-start justify-between gap-2" >
153153 < div className = "min-w-0 flex-1" >
154- < h3 className = "font-semibold text-zinc-100 truncate" title = { fullPath } >
154+ < h3 className = "font-semibold text-zinc-800 dark:text-zinc- 100 truncate" title = { fullPath } >
155155 { fileName }
156156 </ h3 >
157- < p className = "text-xs text-zinc-500 truncate mt-0.5" title = { fullPath } >
157+ < p className = "text-xs text-zinc-400 dark:text-zinc- 500 truncate mt-0.5" title = { fullPath } >
158158 { fullPath }
159159 </ p >
160160 </ div >
161161 < button
162162 onClick = { onClose }
163- className = "p-1 hover:bg-zinc-800 rounded transition-colors flex-shrink-0"
163+ className = "p-1 hover:bg-zinc-100 dark:hover:bg-zinc- 800 rounded transition-colors flex-shrink-0"
164164 >
165- < X className = "w-4 h-4 text-zinc-400" />
165+ < X className = "w-4 h-4 text-zinc-500 dark:text-zinc- 400" />
166166 </ button >
167167 </ div >
168168
@@ -174,7 +174,7 @@ function ImpactPanelComponent({
174174 < span className = "text-lg" > { risk . icon } </ span >
175175 < div >
176176 < div className = { cn ( 'font-semibold text-sm' , risk . text ) } > { risk . label } </ div >
177- < div className = "text-xs text-zinc-400" >
177+ < div className = "text-xs text-zinc-500 dark:text-zinc- 400" >
178178 { totalDependents === 0
179179 ? 'No files depend on this'
180180 : `${ totalDependents } file${ totalDependents === 1 ? '' : 's' } will be affected`
@@ -185,15 +185,15 @@ function ImpactPanelComponent({
185185
186186 { /* Warning for critical files */ }
187187 { impact . riskLevel === 'critical' && (
188- < div className = "mt-2 flex items-start gap-2 text-xs text-rose-400 bg-rose-500/10 px-3 py-2 rounded-lg" >
188+ < div className = "mt-2 flex items-start gap-2 text-xs text-rose-600 dark:text-rose- 400 bg-rose-50 dark: bg-rose-500/10 px-3 py-2 rounded-lg" >
189189 < AlertTriangle className = "w-3.5 h-3.5 flex-shrink-0 mt-0.5" />
190190 < span > Changes to this file have high blast radius. Test thoroughly.</ span >
191191 </ div >
192192 ) }
193193
194194 { /* Entry Point indicator */ }
195195 { impact . isEntryPoint && (
196- < div className = "mt-2 flex items-center gap-2 text-xs text-emerald-400 bg-emerald-500/10 px-3 py-2 rounded-lg" >
196+ < div className = "mt-2 flex items-center gap-2 text-xs text-emerald-600 dark:text-emerald- 400 bg-emerald-50 dark: bg-emerald-500/10 px-3 py-2 rounded-lg" >
197197 < span > 📍</ span >
198198 < span > Entry point - this file is a root of the dependency tree</ span >
199199 </ div >
@@ -225,7 +225,7 @@ function ImpactPanelComponent({
225225
226226 { /* Actions Footer */ }
227227 { onAnalyzeInSearch && (
228- < div className = "p-4 border-t border-zinc-800" >
228+ < div className = "p-4 border-t border-zinc-200 dark:border-zinc- 800" >
229229 < button
230230 onClick = { ( ) => onAnalyzeInSearch ( fullPath ) }
231231 className = "w-full flex items-center justify-center gap-2 px-4 py-2 bg-indigo-600 hover:bg-indigo-500 text-white text-sm font-medium rounded-lg transition-colors"
0 commit comments