@@ -79,7 +79,7 @@ interface Props {
79
79
showFilter ?: boolean
80
80
scheduleData : ScheduleSession [ ]
81
81
filterSchedule ?: ( sessions : ScheduleSession [ ] ) => ScheduleSession [ ]
82
- year : "2025"
82
+ year : "2025" | "2024"
83
83
eventsColors : Record < string , string >
84
84
filterCategories : {
85
85
name : CategoryName
@@ -117,7 +117,6 @@ export function ScheduleList({
117
117
118
118
return (
119
119
< >
120
- < div className = "my-6 h-0.5 bg-gray-200" />
121
120
{ showFilter && (
122
121
< Filters
123
122
categories = { filterCategories }
@@ -142,7 +141,7 @@ export function ScheduleList({
142
141
/>
143
142
) }
144
143
{ Object . entries ( sessionsState ) . length === 0 ? (
145
- < div className = "text-sm text-gray-800 " >
144
+ < div className = "typography-body-sm " >
146
145
< h3 className = "mb-5" > No sessions found</ h3 >
147
146
</ div >
148
147
) : (
@@ -155,31 +154,34 @@ export function ScheduleList({
155
154
< a
156
155
href = { `#day-${ ( year === "2024" ? 1 : 0 ) + index + 1 } ` }
157
156
key = { date }
158
- className = { "text-xs text-gray-800 hover:underline " }
157
+ className = { "typography-link " }
159
158
>
160
159
Day { index + 1 }
161
160
</ a >
162
161
) ) }
163
162
</ div >
164
163
{ Object . entries ( sessionsState ) . map (
165
164
( [ date , concurrentSessionsGroup ] , index ) => (
166
- < div key = { date } className = "text-sm text-gray-800" >
167
- < h3 className = "mb-5" id = { `day-${ index + 1 } ` } >
165
+ < div
166
+ key = { date }
167
+ className = "bg-neu-200 typography-body-sm dark:bg-neu-50"
168
+ >
169
+ < h3
170
+ className = "bg-neu-50 py-4 dark:bg-neu-0"
171
+ id = { `day-${ index + 1 } ` }
172
+ >
168
173
{ format ( parseISO ( date ) , "EEEE, MMMM d" ) }
169
174
</ h3 >
170
175
{ Object . entries ( concurrentSessionsGroup ) . map (
171
176
( [ sessionDate , sessions ] ) => (
172
177
< div key = { `concurrent sessions on ${ sessionDate } ` } >
173
- < div className = "mb-4 flex flex-col lg:flex-row" >
174
- < div className = "relative" >
175
- < span className = "mb-5 mt-3 inline-block w-20 whitespace-nowrap text-gray-500 lg:mr-7 lg:mt-0 lg:w-28" >
178
+ < div className = "mb-px flex flex-col lg:mr-px lg:flex-row" >
179
+ < div className = "relative bg-neu-50 dark:border-neu-50 dark:bg-neu-0 lg:border-r " >
180
+ < span className = "inline-block w-20 whitespace-nowrap pb-4 typography-body-sm lg:mr-6 lg:mt-3 lg:w-28" >
176
181
{ format ( parseISO ( sessionDate ) , "hh:mmaaaa 'PDT'" ) }
177
182
</ span >
178
- < div className = "absolute right-3 top-0 hidden h-full w-0.5 bg-gray-200 lg:block" />
179
183
</ div >
180
- < div className = "relative flex w-full flex-col items-end gap-5 pl-[28px] lg:flex-row lg:items-start lg:pl-0" >
181
- < div className = "absolute left-3 top-0 block h-full w-0.5 bg-gray-200 lg:hidden" />
182
-
184
+ < div className = "relative flex w-full flex-col items-end gap-px pl-[28px] lg:flex-row lg:items-start lg:pl-0" >
183
185
{ sessions . map ( session => {
184
186
const eventType = session . event_type . endsWith ( "s" )
185
187
? session . event_type . slice ( 0 , - 1 )
@@ -195,17 +197,12 @@ export function ScheduleList({
195
197
formattedSpeakers ,
196
198
)
197
199
198
- const borderColor = eventsColors [ session . event_type ]
200
+ const eventColor = eventsColors [ session . event_type ]
199
201
200
202
return session . event_type === "Breaks" ? (
201
203
< div
202
204
key = { session . id }
203
- style = { {
204
- borderLeft : `10px solid ${ borderColor } ` ,
205
- borderRadius : "5px" ,
206
- backgroundColor : "white" ,
207
- } }
208
- className = "flex size-full items-center rounded-md px-4 py-2 font-normal text-black shadow-[-5px_10px_30px_20px_#d0d3da33]"
205
+ className = "flex size-full items-center bg-neu-0 px-4 py-2 font-normal"
209
206
>
210
207
{ showEventType ? eventType + " / " : "" }
211
208
{ eventTitle }
@@ -216,22 +213,25 @@ export function ScheduleList({
216
213
data-tooltip-id = "my-tooltip"
217
214
href = { `/conf/${ year } /schedule/${ session . id } ?name=${ session . name } ` }
218
215
key = { session . id }
219
- style = { {
220
- borderLeft : `10px solid ${ borderColor } ` ,
221
- borderRadius : "5px" ,
222
- backgroundColor : "white" ,
223
- } }
224
- className = "group relative size-full rounded-md px-4 py-2 font-normal text-black no-underline shadow-[-5px_10px_30px_20px_#d0d3da33] hover:no-underline"
216
+ className = "group relative size-full bg-neu-0 px-4 py-2 font-normal no-underline [&:hover_*]:!no-underline"
225
217
>
226
- < div className = "flex h-full flex-col justify-start gap-y-2 py-3" >
227
- { borderColor && (
218
+ < span className = "flex h-full flex-col justify-start gap-y-2 py-3" >
219
+ { eventColor && (
228
220
< span
229
- className = "mb-3 flex items-center justify-center self-start rounded-3xl border px-3 py-1 text-white group-hover:no-underline "
221
+ className = "relative mb-3 flex items-center justify-center self-start border px-2 py-1 font-mono text-xs/none uppercase "
230
222
style = { {
231
- backgroundColor : borderColor ,
223
+ borderColor : eventColor ,
232
224
} }
233
225
>
234
- { eventType }
226
+ < span
227
+ className = "absolute inset-0 opacity-20"
228
+ style = { {
229
+ backgroundColor : eventColor ,
230
+ } }
231
+ />
232
+ < span className = "relative" >
233
+ { eventType }
234
+ </ span >
235
235
</ span >
236
236
) }
237
237
< div className = "flex h-full flex-col justify-between gap-y-2 group-hover:underline" >
@@ -260,7 +260,7 @@ export function ScheduleList({
260
260
</ span >
261
261
</ div >
262
262
</ div >
263
- </ div >
263
+ </ span >
264
264
</ a >
265
265
)
266
266
} ) }
0 commit comments