@@ -127,17 +127,20 @@ export function Timeline({
127127
128128 return (
129129 < div className = "grid gap-6" >
130- < div className = "flex flex-wrap items-center gap-4 " >
130+ < div className = "flex flex-col gap-4 md:flex-row md: items-center md:justify-between " >
131131 { hasStackControl ? (
132- < div className = "flex items-center gap-2" >
133- < span className = "text-sm font-medium text-muted-foreground" >
132+ < div className = "flex flex-1 min-w-0 items-center gap-2" >
133+ < span className = "shrink-0 text-sm font-medium text-muted-foreground" >
134134 Stack:
135135 </ span >
136136 < Select
137137 value = { externalSelectedStack }
138138 onValueChange = { ( value ) => onStackChange ?.( value ) }
139139 >
140- < SelectTrigger className = "w-52" aria-label = "Select stack" >
140+ < SelectTrigger
141+ className = "min-w-0 flex-1 max-w-[200px]"
142+ aria-label = "Select stack"
143+ >
141144 < div className = "flex flex-1 items-center justify-between gap-2" >
142145 < span className = "truncate font-medium text-foreground/90" >
143146 { selectedStackMeta ?. label ?? 'Select stack' }
@@ -172,15 +175,18 @@ export function Timeline({
172175 </ div >
173176 ) : null }
174177
175- < div className = "flex items-center gap-3" >
178+ < div className = "flex flex-1 min-w-0 items-center gap-3" >
176179 < label
177180 htmlFor = "suite-filter"
178- className = "text-sm font-medium text-muted-foreground"
181+ className = "shrink-0 text-sm font-medium text-muted-foreground"
179182 >
180- Filter by suite :
183+ Filter:
181184 </ label >
182185 < Select value = { selectedSuite } onValueChange = { setSelectedSuite } >
183- < SelectTrigger id = "suite-filter" className = "w-64" >
186+ < SelectTrigger
187+ id = "suite-filter"
188+ className = "min-w-0 flex-1 max-w-xs"
189+ >
184190 < SelectValue placeholder = "Select suite…" >
185191 { selectedSuite === 'all' ? 'All suites' : selectedSuite }
186192 </ SelectValue >
@@ -256,7 +262,7 @@ export function Timeline({
256262 return (
257263 < div
258264 key = { entry . commitSha }
259- className = "grid grid-cols-[26px,1fr] items-stretch gap-5 sm:grid-cols-[30px,1fr]"
265+ className = "grid min-w-0 grid-cols-[26px,1fr] items-stretch gap-3 sm:grid-cols-[30px,1fr] sm:gap-5 "
260266 >
261267 < div className = "flex h-full flex-col items-center" >
262268 < span
@@ -371,7 +377,7 @@ export function Timeline({
371377 < div className = "flex flex-none items-center gap-2 sm:flex-col sm:items-end" >
372378 < Badge
373379 variant = { commitStyles . badge }
374- className = "px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide"
380+ className = "px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide sm:px-2.5 "
375381 >
376382 { commitStyles . label }
377383 </ Badge >
@@ -388,7 +394,7 @@ export function Timeline({
388394 </ CardHeader >
389395
390396 < CardContent className = "p-2.5 sm:p-3" >
391- < div className = "grid gap-2 grid-cols-1 sm:grid-cols-2 md :grid-cols-3 lg :grid-cols-4 xl:grid-cols-6 " >
397+ < div className = "grid grid-cols-1 gap-2 sm:grid-cols-2 xl :grid-cols-3 2xl :grid-cols-4" >
392398 { [ ...entry . suites ]
393399 . sort ( ( a , b ) => a . name . localeCompare ( b . name ) )
394400 . map ( ( suite ) => {
@@ -407,11 +413,11 @@ export function Timeline({
407413 target = "_blank"
408414 rel = "noreferrer"
409415 className = { cn (
410- 'flex w-full items-center justify-between gap-3 rounded-lg border px-3 py-2 text-xs font-medium transition-[background-color,border-color] hover:border-border hover:bg-black/15' ,
416+ 'flex min-w-0 w-full items-center justify-between gap-3 rounded-lg border px-3 py-2 text-xs font-medium transition-[background-color,border-color] hover:border-border hover:bg-black/15' ,
411417 suiteStyles . container ,
412418 ) }
413419 >
414- < span className = "text-foreground/90" >
420+ < span className = "truncate text-foreground/90" >
415421 { suite . name }
416422 </ span >
417423 < span className = "flex items-center gap-2 text-muted-foreground/80" >
0 commit comments