Inputs
Inputs

IBAN

Bank account field that upper-cases and groups the IBAN into blocks of four.

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
var iban by remember { mutableStateOf("") }
val grouped = iban.chunked(4).joinToString(" ")
OutlinedTextField(
    value = grouped,
    onValueChange = {
        iban = it.filter(Char::isLetterOrDigit).uppercase().take(34)
    },
    placeholder = { Text("DE00 0000 0000 0000 0000 00") },
    singleLine = true,
    textStyle = LocalTextStyle.current.copy(
        fontFamily = FontFamily.Monospace,
    ),
)