@@ -5,17 +5,20 @@ import androidx.compose.foundation.clickable
55import androidx.compose.foundation.layout.Arrangement
66import androidx.compose.foundation.layout.Column
77import androidx.compose.foundation.layout.Spacer
8- import androidx.compose.foundation.layout.fillMaxSize
98import androidx.compose.foundation.layout.height
9+ import androidx.compose.foundation.layout.padding
1010import androidx.compose.material3.Card
1111import androidx.compose.material3.CardDefaults
1212import androidx.compose.material3.Text
1313import androidx.compose.runtime.Composable
1414import androidx.compose.ui.Alignment
1515import androidx.compose.ui.Modifier
16+ import androidx.compose.ui.draw.clip
17+ import androidx.compose.ui.draw.shadow
1618import androidx.compose.ui.graphics.Shape
1719import androidx.compose.ui.text.font.FontWeight
1820import androidx.compose.ui.unit.dp
21+ import androidx.compose.ui.unit.sp
1922import io.github.chouaibmo.rowkalendar.extensions.isBefore
2023import io.github.chouaibmo.rowkalendar.extensions.now
2124import kotlinx.datetime.LocalDate
@@ -63,27 +66,38 @@ fun DateCell(
6366 }
6467 }
6568
69+ val cellElevation = when {
70+ isSelected -> elevation.selectedElevation
71+ date.isBefore(LocalDate .now()) -> elevation.pastElevation
72+ else -> elevation.futureElevation
73+ }
74+
6675 Card (
67- modifier = modifier.clickable { onDateSelected(date) },
68- shape = shape,
76+ modifier = modifier
77+ .shadow(elevation = cellElevation, shape = shape)
78+ .clip(shape = shape)
79+ .clickable { onDateSelected(date) },
6980 border = cellBorder,
7081 colors = CardDefaults .cardColors(containerColor = cellColor),
71- elevation = CardDefaults .cardElevation(defaultElevation = elevation.defaultElevation)
7282 ) {
7383 Column (
7484 horizontalAlignment = Alignment .CenterHorizontally ,
7585 verticalArrangement = Arrangement .Center ,
76- modifier = Modifier .fillMaxSize( )
86+ modifier = Modifier .padding(horizontal = 12 .dp, vertical = 8 .dp )
7787 ) {
7888 Text (
79- text = date.dayOfWeek.name.subSequence(0 , 3 ).toString().uppercase(),
80- color = textColor
89+ text = date.dayOfWeek.name.subSequence(0 , 3 ).toString()
90+ .lowercase()
91+ .replaceFirstChar { it.uppercase() },
92+ color = textColor,
93+ fontWeight = FontWeight .Bold ,
8194 )
8295 Spacer (modifier = Modifier .height(6 .dp))
8396 Text (
8497 text = date.dayOfMonth.toString(),
85- fontWeight = FontWeight .ExtraBold ,
86- color = textColor
98+ fontWeight = FontWeight .Black ,
99+ color = textColor,
100+ fontSize = 24 .sp
87101 )
88102 }
89103 }
0 commit comments