Pickers
9:009:3010:0010:3011:0011:30
Installation
caveui components are copy-paste Jetpack Compose built entirely on Material 3 — there's no caveui dependency to add. Make sure Material 3 is on your classpath (it ships with the Compose BOM), then copy the Usage snippet below into your project.
kotlin
// build.gradle.kts (module)
dependencies {
implementation(platform("androidx.compose:compose-bom:2025.06.00"))
implementation("androidx.compose.material3:material3")
}Usage
kotlin
@Composable
fun TimeSlots() {
val slots = listOf("9:00", "9:30", "10:00", "10:30", "11:00", "11:30")
val taken = setOf("10:00")
var selected by remember { mutableStateOf("9:30") }
FlowRow(maxItemsInEachRow = 3,
horizontalArrangement = Arrangement.spacedBy(8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp)) {
slots.forEach { s ->
val isTaken = s in taken
val on = s == selected
OutlinedButton(
onClick = { if (!isTaken) selected = s },
enabled = !isTaken,
colors = ButtonDefaults.outlinedButtonColors(
containerColor = if (on) MaterialTheme.colorScheme.primary
else Color.Transparent,
contentColor = if (on) MaterialTheme.colorScheme.onPrimary
else MaterialTheme.colorScheme.onSurface,
),
) { Text(s) }
}
}
}