1package com.peachpasswords.ui.components23import androidx.compose.foundation.clickable4import androidx.compose.foundation.layout.Arrangement5import androidx.compose.foundation.layout.Row6import androidx.compose.foundation.layout.defaultMinSize7import androidx.compose.foundation.layout.fillMaxWidth8import androidx.compose.foundation.layout.padding9import androidx.compose.foundation.shape.RoundedCornerShape10import androidx.compose.material3.Surface11import androidx.compose.material3.Text12import androidx.compose.runtime.Composable13import androidx.compose.ui.Alignment14import androidx.compose.ui.Modifier15import androidx.compose.ui.unit.dp16import com.peachpasswords.ui.theme.LocalPeachAccent17import com.peachpasswords.ui.theme.PeachSpacing18import com.peachpasswords.ui.theme.PeachType19import com.peachpasswords.ui.theme.peachColors2021data class PeachSegment(22 val key: String,23 val label: String,24)2526@Composable27fun PeachSegmentedControl(28 segments: List<PeachSegment>,29 selectedKey: String,30 onSelected: (String) -> Unit,31 modifier: Modifier = Modifier,32) {33 val accent = LocalPeachAccent.current34 Surface(35 modifier = modifier.fillMaxWidth(),36 color = peachColors.S1,37 shape = RoundedCornerShape(999.dp),38 tonalElevation = 1.dp,39 ) {40 Row(41 modifier = Modifier.padding(PeachSpacing.xs),42 verticalAlignment = Alignment.CenterVertically,43 horizontalArrangement = Arrangement.spacedBy(PeachSpacing.xs),44 ) {45 segments.forEach { segment ->46 val selected = segment.key == selectedKey47 Surface(48 modifier = Modifier49 .weight(1f)50 .defaultMinSize(minHeight = 34.dp)51 .clickable { onSelected(segment.key) },52 color = if (selected) accent else peachColors.S2,53 contentColor = if (selected) peachColors.Bg else peachColors.T1,54 shape = RoundedCornerShape(999.dp),55 ) {56 Row(57 modifier = Modifier.padding(horizontal = PeachSpacing.sm, vertical = PeachSpacing.sm),58 horizontalArrangement = Arrangement.Center,59 verticalAlignment = Alignment.CenterVertically,60 ) {61 Text(segment.label.uppercase(), style = PeachType.sortPill)62 }63 }64 }65 }66 }67}