package com.example.ui.components import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.CheckCircle import androidx.compose.material.icons.filled.Error import androidx.compose.material.icons.filled.HourglassEmpty import androidx.compose.material3.Badge import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.example.ui.theme.EmeraldDark import com.example.ui.theme.EmeraldLight import com.example.ui.theme.EmeraldPrimary @Composable fun StatusBadge(status: String) { val (bg, fg, icon) = when (status.uppercase()) { "OPTED_IN", "APPROVED", "COMPLETED", "CONVERTED", "ACTIVE", "READ" -> Triple( Color(0xFFDCFCE7), Color(0xFF166534), Icons.Default.CheckCircle ) "PENDING", "QUEUED", "IN_PROGRESS", "NEW", "CONTACTED", "INTERESTED", "FOLLOW_UP" -> Triple( Color(0xFFFEF3C7), Color(0xFF92400E), Icons.Default.HourglassEmpty ) else -> Triple( Color(0xFFFEE2E2), Color(0xFF991B1B), Icons.Default.Error ) } Surface( color = bg, shape = RoundedCornerShape(12.dp) ) { Row( modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp), verticalAlignment = Alignment.CenterVertically ) { Icon( imageVector = icon, contentDescription = null, tint = fg, modifier = Modifier.size(12.dp) ) Spacer(modifier = Modifier.width(4.dp)) Text( text = status.replace("_", " "), color = fg, fontSize = 11.sp, fontWeight = FontWeight.SemiBold ) } } } @Composable fun CategoryPill(name: String, colorHex: String? = null) { val tint = try { if (!colorHex.isNullOrBlank()) Color(android.graphics.Color.parseColor(colorHex)) else EmeraldPrimary } catch (e: Exception) { EmeraldPrimary } Surface( color = tint.copy(alpha = 0.12f), shape = RoundedCornerShape(8.dp) ) { Row( modifier = Modifier.padding(horizontal = 8.dp, vertical = 3.dp), verticalAlignment = Alignment.CenterVertically ) { Box( modifier = Modifier .size(6.dp) .clip(CircleShape) .background(tint) ) Spacer(modifier = Modifier.width(6.dp)) Text( text = name, color = tint, fontSize = 11.sp, fontWeight = FontWeight.Medium ) } } }