@@ -119,7 +119,7 @@ export function InstalledScriptsTab() {
119119 case 'in_progress' :
120120 return `${ baseClasses } bg-yellow-100 text-yellow-800` ;
121121 default :
122- return `${ baseClasses } bg-gray-100 text-gray-800` ;
122+ return `${ baseClasses } bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200 ` ;
123123 }
124124 } ;
125125
@@ -131,14 +131,14 @@ export function InstalledScriptsTab() {
131131 case 'ssh' :
132132 return `${ baseClasses } bg-purple-100 text-purple-800` ;
133133 default :
134- return `${ baseClasses } bg-gray-100 text-gray-800` ;
134+ return `${ baseClasses } bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200 ` ;
135135 }
136136 } ;
137137
138138 if ( isLoading ) {
139139 return (
140140 < div className = "flex items-center justify-center h-64" >
141- < div className = "text-gray-500" > Loading installed scripts...</ div >
141+ < div className = "text-gray-500 dark:text-gray-400 " > Loading installed scripts...</ div >
142142 </ div >
143143 ) ;
144144 }
@@ -160,8 +160,8 @@ export function InstalledScriptsTab() {
160160 ) }
161161
162162 { /* Header with Stats */ }
163- < div className = "bg-white rounded-lg shadow p-6" >
164- < h2 className = "text-2xl font-bold text-gray-900 mb-4" > Installed Scripts</ h2 >
163+ < div className = "bg-white dark:bg-gray-800 rounded-lg shadow p-6" >
164+ < h2 className = "text-2xl font-bold text-gray-900 dark:text-gray-100 mb-4" > Installed Scripts</ h2 >
165165
166166 { stats && (
167167 < div className = "grid grid-cols-2 md:grid-cols-4 gap-4 mb-6" >
@@ -192,14 +192,14 @@ export function InstalledScriptsTab() {
192192 placeholder = "Search scripts, container IDs, or servers..."
193193 value = { searchTerm }
194194 onChange = { ( e ) => setSearchTerm ( e . target . value ) }
195- className = "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
195+ className = "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder-gray-500 dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:focus:ring-blue-400 "
196196 />
197197 </ div >
198198
199199 < select
200200 value = { statusFilter }
201201 onChange = { ( e ) => setStatusFilter ( e . target . value as 'all' | 'success' | 'failed' | 'in_progress' ) }
202- className = "px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
202+ className = "px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:focus:ring-blue-400 "
203203 >
204204 < option value = "all" > All Status</ option >
205205 < option value = "success" > Success</ option >
@@ -210,7 +210,7 @@ export function InstalledScriptsTab() {
210210 < select
211211 value = { serverFilter }
212212 onChange = { ( e ) => setServerFilter ( e . target . value ) }
213- className = "px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
213+ className = "px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:focus:ring-blue-400 "
214214 >
215215 < option value = "all" > All Servers</ option >
216216 < option value = "local" > Local</ option >
@@ -222,60 +222,57 @@ export function InstalledScriptsTab() {
222222 </ div >
223223
224224 { /* Scripts Table */ }
225- < div className = "bg-white rounded-lg shadow overflow-hidden" >
225+ < div className = "bg-white dark:bg-gray-800 rounded-lg shadow overflow-hidden" >
226226 { filteredScripts . length === 0 ? (
227- < div className = "text-center py-8 text-gray-500" >
227+ < div className = "text-center py-8 text-gray-500 dark:text-gray-400 " >
228228 { scripts . length === 0 ? 'No installed scripts found.' : 'No scripts match your filters.' }
229229 </ div >
230230 ) : (
231231 < div className = "overflow-x-auto" >
232- < table className = "min-w-full divide-y divide-gray-200" >
233- < thead className = "bg-gray-50" >
232+ < table className = "min-w-full divide-y divide-gray-200 dark:divide-gray-700 " >
233+ < thead className = "bg-gray-50 dark:bg-gray-700 " >
234234 < tr >
235- < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" >
235+ < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider" >
236236 Script Name
237237 </ th >
238- < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" >
238+ < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider" >
239239 Container ID
240240 </ th >
241- < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" >
241+ < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider" >
242242 Server
243243 </ th >
244- < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" >
245- Mode
246- </ th >
247- < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" >
244+ < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider" >
248245 Status
249246 </ th >
250- < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" >
251- Date
247+ < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider" >
248+ Installation Date
252249 </ th >
253- < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" >
250+ < th className = "px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider" >
254251 Actions
255252 </ th >
256253 </ tr >
257254 </ thead >
258- < tbody className = "bg-white divide-y divide-gray-200" >
255+ < tbody className = "bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700 " >
259256 { filteredScripts . map ( ( script ) => (
260257 < tr key = { script . id } className = "hover:bg-gray-50" >
261258 < td className = "px-6 py-4 whitespace-nowrap" >
262- < div className = "text-sm font-medium text-gray-900" > { script . script_name } </ div >
263- < div className = "text-sm text-gray-500" > { script . script_path } </ div >
259+ < div className = "text-sm font-medium text-gray-900 dark:text-gray-100 " > { script . script_name } </ div >
260+ < div className = "text-sm text-gray-500 dark:text-gray-400 " > { script . script_path } </ div >
264261 </ td >
265262 < td className = "px-6 py-4 whitespace-nowrap" >
266263 { script . container_id ? (
267- < span className = "text-sm font-mono text-gray-900" > { String ( script . container_id ) } </ span >
264+ < span className = "text-sm font-mono text-gray-900 dark:text-gray-100 " > { String ( script . container_id ) } </ span >
268265 ) : (
269- < span className = "text-sm text-gray-400" > -</ span >
266+ < span className = "text-sm text-gray-400 dark:text-gray-500 " > -</ span >
270267 ) }
271268 </ td >
272269 < td className = "px-6 py-4 whitespace-nowrap" >
273270 { script . execution_mode === 'local' ? (
274- < span className = "text-sm text-gray-900" > Local</ span >
271+ < span className = "text-sm text-gray-900 dark:text-gray-100 " > Local</ span >
275272 ) : (
276273 < div >
277- < div className = "text-sm font-medium text-gray-900" > { script . server_name } </ div >
278- < div className = "text-sm text-gray-500" > { script . server_ip } </ div >
274+ < div className = "text-sm font-medium text-gray-900 dark:text-gray-100 " > { script . server_name } </ div >
275+ < div className = "text-sm text-gray-500 dark:text-gray-400 " > { script . server_ip } </ div >
279276 </ div >
280277 ) }
281278 </ td >
@@ -289,7 +286,7 @@ export function InstalledScriptsTab() {
289286 { String ( script . status ) . replace ( '_' , ' ' ) . toUpperCase ( ) }
290287 </ span >
291288 </ td >
292- < td className = "px-6 py-4 whitespace-nowrap text-sm text-gray-500" >
289+ < td className = "px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400 " >
293290 { formatDate ( String ( script . installation_date ) ) }
294291 </ td >
295292 < td className = "px-6 py-4 whitespace-nowrap text-sm font-medium" >
0 commit comments