diff --git a/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt b/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt index f4eb727..53fc6ad 100644 --- a/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt +++ b/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt @@ -475,44 +475,43 @@ fun AttachmentMenu( onFile: () -> Unit, modifier: Modifier = Modifier, ) { - val cs = MaterialTheme.colorScheme val accent = LocalKaizenAccent.current val isDark = isSystemInDarkTheme() - GlassSurface( - modifier = modifier.padding(horizontal = 12.dp), - shape = KaizenShapes.lg, - tintAlpha = GlassTiers.card(isDark), - shadowStack = KaizenShadows.level2, - cornerRadius = 24.dp, + Column( + modifier = modifier.padding(horizontal = 16.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + horizontalAlignment = Alignment.Start, ) { - Column(Modifier.fillMaxWidth().padding(8.dp)) { - AttachRow(Icons.Rounded.CameraAlt, stringResource(R.string.attach_camera), accent.primary, isDark, onCamera) - AttachRow(Icons.Rounded.Image, stringResource(R.string.attach_gallery), Color(0xFF6366F1), isDark, onGallery) - AttachRow(Icons.AutoMirrored.Rounded.InsertDriveFile, stringResource(R.string.attach_file), Color(0xFF10B981), isDark, onFile) - } + AttachPill(Icons.Rounded.CameraAlt, stringResource(R.string.attach_camera), accent.primary, isDark, onCamera) + AttachPill(Icons.Rounded.Image, stringResource(R.string.attach_gallery), Color(0xFF6366F1), isDark, onGallery) + AttachPill(Icons.AutoMirrored.Rounded.InsertDriveFile, stringResource(R.string.attach_file), Color(0xFF10B981), isDark, onFile) } } @Composable -private fun AttachRow(icon: ImageVector, label: String, tint: Color, isDark: Boolean, onClick: () -> Unit) { +private fun AttachPill(icon: ImageVector, label: String, tint: Color, isDark: Boolean, onClick: () -> Unit) { val cs = MaterialTheme.colorScheme - Row( - Modifier - .fillMaxWidth() - .clip(KaizenShapes.md) - .clickable(onClick = onClick) - .padding(horizontal = 12.dp, vertical = 12.dp), - verticalAlignment = Alignment.CenterVertically, + GlassSurface( + shape = KaizenShapes.pill, + tintAlpha = GlassTiers.pill(isDark), + shadowStack = KaizenShadows.level2, + cornerRadius = 24.dp, + modifier = Modifier.clickable(onClick = onClick), ) { - Box( - Modifier.size(40.dp).clip(KaizenShapes.circle).background(tint.copy(alpha = if (isDark) 0.15f else 0.10f)), - contentAlignment = Alignment.Center, + Row( + Modifier.padding(start = 6.dp, end = 16.dp, top = 6.dp, bottom = 6.dp), + verticalAlignment = Alignment.CenterVertically, ) { - Icon(icon, null, tint = tint, modifier = Modifier.size(20.dp)) + Box( + Modifier.size(36.dp).clip(KaizenShapes.circle).background(tint.copy(alpha = if (isDark) 0.18f else 0.12f)), + contentAlignment = Alignment.Center, + ) { + Icon(icon, null, tint = tint, modifier = Modifier.size(18.dp)) + } + Spacer(Modifier.width(10.dp)) + Text(label, color = cs.onBackground, fontSize = 14.sp, fontWeight = FontWeight.Medium) } - Spacer(Modifier.width(14.dp)) - Text(label, color = cs.onBackground, fontSize = 15.sp, fontWeight = FontWeight.Medium) } }