11import { Skeleton } from "@/components/ui/skeleton" ;
22import { cn } from "@/lib/utils" ;
3+ import { FullWidthBorder } from "./full-width-border" ;
34
45type ParticipationData = {
56 all : number [ ] ;
@@ -79,9 +80,9 @@ function ActivityCell({
7980 return (
8081 < div
8182 className = { cn (
82- "aspect-square w-full" ,
83- "border border-dashed" ,
83+ "aspect-square w-full border-[0.5px] border-background border-dashed" ,
8484 ACTIVITY_COLORS [ level ] ,
85+ "hover:bg-cossistant-orange" ,
8586 level === 0 && "border-primary/5"
8687 ) }
8788 title = { `Week ${ weekIndex + 1 } , Day ${ dayIndex + 1 } : ${ count } commits` }
@@ -100,7 +101,7 @@ export function GitHubActivityGraphSkeleton() {
100101
101102 { /* Grid skeleton */ }
102103 < div className = "w-full" >
103- < div className = "w-full rounded border border-dashed p-3 md:p-4" >
104+ < div className = "w-full p-3 md:p-4" >
104105 < div className = "grid w-full grid-flow-col grid-cols-52 grid-rows-7 gap-0.5 md:gap-1" >
105106 { Array . from ( { length : 52 * 7 } ) . map ( ( _ , i ) => (
106107 < Skeleton
@@ -147,9 +148,9 @@ export async function GitHubActivityGraph() {
147148 const maxDailyCommits = Math . max ( ...dailyData . flat ( ) , 1 ) ;
148149
149150 return (
150- < div className = "flex flex-col gap-6 py-8 md:py-12 " >
151+ < div className = "flex flex-col gap-6 pt-3 " >
151152 { /* Header */ }
152- < div className = "flex flex-col gap-2 px-4" >
153+ < div className = "relative flex flex-col gap-2 px-4" >
153154 < h2 className = "font-f37-stout text-xl md:text-2xl" > Changelog</ h2 >
154155 < p className = "text-muted-foreground" >
155156 We're shipping a lot,{ " " }
@@ -166,8 +167,9 @@ export async function GitHubActivityGraph() {
166167
167168 { /* Activity Grid */ }
168169 < div className = "w-full" >
169- < div className = "w-full p-3 md:p-4" >
170- < div className = "grid w-full grid-flow-col grid-cols-52 grid-rows-7 gap-0.5 md:gap-2.5" >
170+ < div className = "relative w-full" >
171+ < FullWidthBorder className = "top-0" />
172+ < div className = "grid w-full grid-flow-col grid-cols-52 grid-rows-7 gap-0 md:gap-0" >
171173 { dailyData . map ( ( week , weekIndex ) =>
172174 week . map ( ( dayCount , dayIndex ) => (
173175 < ActivityCell
@@ -180,26 +182,25 @@ export async function GitHubActivityGraph() {
180182 ) )
181183 ) }
182184 </ div >
185+ < FullWidthBorder className = "bottom-0" />
186+ < div className = "-bottom-6 absolute right-3 flex items-center justify-center gap-2 text-muted-foreground text-xs" >
187+ < span > Less</ span >
188+ < div className = "flex gap-0.5" >
189+ { ( [ 0 , 1 , 2 , 3 , 4 ] as ActivityLevel [ ] ) . map ( ( level ) => (
190+ < div
191+ className = { cn (
192+ "size-2 md:size-2.5 lg:size-3" ,
193+ "border border-dashed" ,
194+ ACTIVITY_COLORS [ level ]
195+ ) }
196+ key = { level }
197+ />
198+ ) ) }
199+ </ div >
200+ < span > More</ span >
201+ </ div >
183202 </ div >
184203 </ div >
185-
186- { /* Legend */ }
187- < div className = "flex items-center justify-center gap-2 px-4 text-muted-foreground text-xs" >
188- < span > Less</ span >
189- < div className = "flex gap-0.5" >
190- { ( [ 0 , 1 , 2 , 3 , 4 ] as ActivityLevel [ ] ) . map ( ( level ) => (
191- < div
192- className = { cn (
193- "size-2 md:size-2.5 lg:size-3" ,
194- "border border-dashed" ,
195- ACTIVITY_COLORS [ level ]
196- ) }
197- key = { level }
198- />
199- ) ) }
200- </ div >
201- < span > More</ span >
202- </ div >
203204 </ div >
204205 ) ;
205206 } catch {
0 commit comments