package com.suno.android.common_ui.components.buttons import androidx.compose.foundation.layout.heightIn import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.dp import com.suno.android.common_ui.theme.ExtendedTheme import com.suno.android.common_ui.theme.buttonMedium import com.suno.android.common_ui.theme.buttonSmall /** * Buttons that match Material 3 Expressive button sizes. * https://m3.material.io/components/buttons/specs */ @Composable fun SunoSmallButton( text: String, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, ) { SunoInternalButton( text = text, textStyle = buttonSmall, onClick = onClick, modifier = modifier.heightIn(40.dp), enabled = enabled, ) } @Composable fun SunoMediumButton( text: String, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, ) { SunoInternalButton( text = text, textStyle = buttonMedium, onClick = onClick, modifier = modifier.heightIn(56.dp), enabled = enabled, ) } @Composable private fun SunoInternalButton( text: String, textStyle: TextStyle, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, ) { Button( modifier = modifier, colors = ButtonDefaults.buttonColors( containerColor = ExtendedTheme.colors.backgroundInvert, ), onClick = onClick, enabled = enabled, ) { Text( text = text, style = textStyle, color = ExtendedTheme.colors.backgroundPrimary, ) } }