package com.peachpasswords.ui.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.peachpasswords.ui.theme.PeachSpacing import com.peachpasswords.ui.theme.PeachType import com.peachpasswords.ui.theme.peachColors @Composable fun PeachEmptyOrEndState( message: String, modifier: Modifier = Modifier, detail: String? = null, action: (@Composable () -> Unit)? = null, ) { Column( modifier = modifier .fillMaxWidth() .padding(vertical = PeachSpacing.xxl, horizontal = PeachSpacing.xl), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(PeachSpacing.sm), ) { // 0.52 read as a muddy/miscolored brown against the near-black shell // background rather than a paler peach — the mark's own fill colors // are correct (byte-for-byte the browser's SVG hex values), the low // alpha was just crushing them. 0.85 keeps it a notch softer than a // full-opacity hero moment without losing the actual hue. PeachMark(size = 34.dp, alpha = 0.85f) Text( text = message, color = peachColors.T1, style = PeachType.Display.let { androidx.compose.ui.text.TextStyle( fontFamily = it, fontStyle = FontStyle.Italic, fontSize = 20.sp, lineHeight = 22.sp, ) }, ) if (detail != null) { Text(detail, color = peachColors.T2, style = PeachType.hint) } if (action != null) action() } }