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 518d8f0..2c88a86 100644 --- a/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt +++ b/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt @@ -531,11 +531,11 @@ fun MessageRow( if (!message.streaming) { Row( Modifier.padding(top = 6.dp, end = 4.dp), - horizontalArrangement = Arrangement.spacedBy(4.dp), + horizontalArrangement = Arrangement.spacedBy(2.dp), ) { MessageActionButton( - icon = if (copied) KaizenIcons.Check else KaizenIcons.Copy, - tint = if (copied) Color(0xFF10B981) else cs.onSurfaceVariant.copy(alpha = 0.50f), + icon = if (copied) KaizenIcons.Check else KaizenIcons.ClipboardCopy, + tint = if (copied) Color(0xFF10B981) else cs.onSurfaceVariant.copy(alpha = 0.55f), ) { haptics.tick() copied = true @@ -547,7 +547,7 @@ fun MessageRow( } if (message.content.isNotBlank()) { onEdit?.let { edit -> - MessageActionButton(KaizenIcons.Pencil, cs.onSurfaceVariant.copy(alpha = 0.50f)) { + MessageActionButton(KaizenIcons.SquarePen, cs.onSurfaceVariant.copy(alpha = 0.55f)) { haptics.tick(); edit(message.wireId, message.content) } } @@ -591,11 +591,11 @@ fun MessageRow( if (!message.streaming && !message.thinking && message.content.isNotBlank()) { Row( Modifier.padding(start = 38.dp, top = 6.dp), - horizontalArrangement = Arrangement.spacedBy(4.dp), + horizontalArrangement = Arrangement.spacedBy(2.dp), ) { MessageActionButton( - icon = if (copied) KaizenIcons.Check else KaizenIcons.Copy, - tint = if (copied) Color(0xFF10B981) else cs.onSurfaceVariant.copy(alpha = 0.50f), + icon = if (copied) KaizenIcons.Check else KaizenIcons.ClipboardCopy, + tint = if (copied) Color(0xFF10B981) else cs.onSurfaceVariant.copy(alpha = 0.55f), ) { haptics.tick() copied = true @@ -608,13 +608,13 @@ fun MessageRow( onReadAloud?.let { readAloud -> MessageActionButton( icon = KaizenIcons.Volume2, - tint = if (isPlayingTts) accent.primary else cs.onSurfaceVariant.copy(alpha = 0.50f), + tint = if (isPlayingTts) accent.primary else cs.onSurfaceVariant.copy(alpha = 0.55f), ) { haptics.tick(); readAloud(message.content) } } onRegenerate?.let { regen -> - MessageActionButton(KaizenIcons.RefreshCw, cs.onSurfaceVariant.copy(alpha = 0.50f)) { + MessageActionButton(KaizenIcons.RotateCcw, cs.onSurfaceVariant.copy(alpha = 0.55f)) { haptics.tick(); regen(message.wireId) } } @@ -680,12 +680,12 @@ private fun VoiceWaveform(amplitude: Float) { private fun MessageActionButton(icon: ImageVector, tint: Color, onClick: () -> Unit) { Box( Modifier - .size(32.dp) + .size(36.dp) .clip(KaizenShapes.circle) .clickable(onClick = onClick), contentAlignment = Alignment.Center, ) { - Icon(icon, null, tint = tint, modifier = Modifier.size(18.dp)) + Icon(icon, null, tint = tint, modifier = Modifier.size(20.dp)) } } diff --git a/app/src/main/java/dev/kaizen/app/ui/icon/KaizenIcons.kt b/app/src/main/java/dev/kaizen/app/ui/icon/KaizenIcons.kt index 107ee9b..ecccd10 100644 --- a/app/src/main/java/dev/kaizen/app/ui/icon/KaizenIcons.kt +++ b/app/src/main/java/dev/kaizen/app/ui/icon/KaizenIcons.kt @@ -49,13 +49,17 @@ object KaizenIcons { // ── Conversation management ───────────────────────────────────────────── val Check: ImageVector get() = Lucide.Check + val ClipboardCopy: ImageVector get() = Lucide.ClipboardCopy val Copy: ImageVector get() = Lucide.Copy val Lock: ImageVector get() = Lucide.Lock val LockOpen: ImageVector get() = Lucide.LockOpen val Pencil: ImageVector get() = Lucide.Pencil + val PenLine: ImageVector get() = Lucide.PenLine val Pin: ImageVector get() = Lucide.Pin val PinOff: ImageVector get() = Lucide.PinOff val RefreshCw: ImageVector get() = Lucide.RefreshCw + val RotateCcw: ImageVector get() = Lucide.RotateCcw + val SquarePen: ImageVector get() = Lucide.SquarePen val Star: ImageVector get() = Lucide.Star val StarOff: ImageVector get() = Lucide.StarOff val Trash: ImageVector get() = Lucide.Trash2