@@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.heightIn
2323import androidx.compose.foundation.layout.padding
2424import androidx.compose.foundation.layout.size
2525import androidx.compose.foundation.layout.widthIn
26+ import androidx.compose.material3.Icon
2627import androidx.compose.material3.Text
2728import androidx.compose.runtime.Composable
2829import androidx.compose.ui.Alignment
@@ -31,6 +32,7 @@ import androidx.compose.ui.graphics.Color
3132import androidx.compose.ui.graphics.ImageBitmap
3233import androidx.compose.ui.graphics.painter.Painter
3334import androidx.compose.ui.graphics.vector.ImageVector
35+ import androidx.compose.ui.res.painterResource
3436import androidx.compose.ui.semantics.error
3537import androidx.compose.ui.semantics.semantics
3638import androidx.compose.ui.unit.dp
@@ -91,13 +93,17 @@ internal fun OudsControlItem(
9193 ) {
9294 val controlItemTokens = OudsTheme .componentsTokens.controlItem
9395
94- val itemIcon: (@Composable () -> Unit )? = icon?.let {
95- {
96- icon.Content (
97- extraParameters = OudsControlItemIcon .ExtraParameters (
98- tint = if (state == OudsControlItemState .Disabled ) OudsTheme .colorScheme.content.disabled else OudsTheme .colorScheme.content.default
96+ val itemIcon: (@Composable () -> Unit )? = if (error != null ) {
97+ { errorIcon(state = state) }
98+ } else {
99+ icon?.let {
100+ {
101+ icon.Content (
102+ extraParameters = OudsControlItemIcon .ExtraParameters (
103+ tint = if (state == OudsControlItemState .Disabled ) OudsTheme .colorScheme.content.disabled else OudsTheme .colorScheme.content.default
104+ )
99105 )
100- )
106+ }
101107 }
102108 }
103109
@@ -269,6 +275,20 @@ private fun LeadingTrailingBox(content: @Composable () -> Unit) {
269275 }
270276}
271277
278+ @Composable
279+ private fun errorIcon (state : OudsControlItemState ) {
280+ with (OudsTheme .componentsTokens.controlItem) {
281+ Icon (
282+ modifier = Modifier
283+ .padding(spacePaddingInlineErrorIcon.value)
284+ .size(sizeErrorIcon.value),
285+ painter = painterResource(id = OudsTheme .drawableResources.alertImportant),
286+ contentDescription = null ,
287+ tint = errorColor(state = state)
288+ )
289+ }
290+ }
291+
272292@Composable
273293private fun backgroundColor (state : OudsControlItemState ): Color {
274294 return with (OudsTheme .componentsTokens.controlItem) {
0 commit comments