package com.aistudio.bonjuteri.jwlry.ui.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.aistudio.bonjuteri.jwlry.ui.theme.GoldPrimary import com.aistudio.bonjuteri.jwlry.ui.theme.GoldSubtle import com.aistudio.bonjuteri.jwlry.ui.theme.MutedGrey import com.aistudio.bonjuteri.jwlry.ui.theme.PrimaryBlack import com.aistudio.bonjuteri.jwlry.ui.theme.PureWhite @Composable fun EmptyStateView( icon: ImageVector, title: String, description: String, modifier: Modifier = Modifier, actionButtonText: String? = null, onActionClick: (() -> Unit)? = null ) { Column( modifier = modifier .fillMaxWidth() .padding(32.dp), horizontalAlignment = Alignment.CenterHorizontally ) { Box( modifier = Modifier .size(72.dp) .background(GoldSubtle, CircleShape), contentAlignment = Alignment.Center ) { Icon( imageVector = icon, contentDescription = null, tint = GoldPrimary, modifier = Modifier.size(36.dp) ) } Spacer(modifier = Modifier.height(16.dp)) Text( text = title, style = MaterialTheme.typography.titleLarge.copy( fontWeight = FontWeight.Bold, fontSize = 17.sp, color = PrimaryBlack ), textAlign = TextAlign.Center ) Spacer(modifier = Modifier.height(6.dp)) Text( text = description, style = MaterialTheme.typography.bodyMedium.copy( color = MutedGrey, fontSize = 13.sp, lineHeight = 18.sp ), textAlign = TextAlign.Center ) if (actionButtonText != null && onActionClick != null) { Spacer(modifier = Modifier.height(20.dp)) Button( onClick = onActionClick, shape = RoundedCornerShape(10.dp), colors = ButtonDefaults.buttonColors( containerColor = PrimaryBlack, contentColor = PureWhite ) ) { Text( text = actionButtonText, fontWeight = FontWeight.Bold, fontSize = 13.sp ) } } } }