Coverage Summary for Class: SurferInviteRowKt (com.georgeci.moneysurfer.uikit.components.workspace)

Class Class, % Method, % Branch, % Line, % Instruction, %
SurferInviteRowKt 0% (0/1) 0% (0/2) 0% (0/6) 0% (0/7) 0% (0/145)


 package com.georgeci.moneysurfer.uikit.components.workspace
 
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.shape.CircleShape
 import androidx.compose.material3.Icon
 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.tooling.preview.Preview
 import androidx.compose.ui.unit.dp
 import com.georgeci.moneysurfer.uikit.atom.SurferActionCard
 import com.georgeci.moneysurfer.uikit.icons.SurferIcons
 import com.georgeci.moneysurfer.uikit.preview.SurferComponentPreview
 import com.georgeci.moneysurfer.uikit.semantics.SurferSemantics
 import com.georgeci.moneysurfer.uikit.theme.AppTheme
 
 /**
  * Dashed-outline "Invite people" CTA. Primary-container avatar with a plus, title + subtitle,
  * whole row is the tap target. Backed by [SurferActionCard] so it reads as an "add" action
  * (distinct from selectable [SurferCard] rows). Used inside the Members bottom sheet and
  * similar invite flows.
  */
 @Composable
 fun SurferInviteRow(
     title: String,
     subtitle: String,
     onClick: () -> Unit,
     modifier: Modifier = Modifier,
 ) {
     SurferActionCard(
         modifier = modifier.fillMaxWidth(),
         onClick = onClick,
     ) {
         Row(
             verticalAlignment = Alignment.CenterVertically,
             horizontalArrangement = Arrangement.spacedBy(AppTheme.spacing.medium),
         ) {
             Box(
                 modifier = Modifier
                     .size(40.dp)
                     .clip(CircleShape)
                     .background(AppTheme.materialColors.primaryContainer),
                 contentAlignment = Alignment.Center,
             ) {
                 Icon(
                     imageVector = SurferIcons.Add,
                     contentDescription = SurferSemantics.Decorative,
                     tint = AppTheme.materialColors.onPrimaryContainer,
                     modifier = Modifier.size(20.dp),
                 )
             }
             Column(Modifier.weight(1f)) {
                 Text(
                     text = title,
                     style = AppTheme.typography.titleSmall,
                     color = AppTheme.materialColors.onSurface,
                 )
                 Text(
                     text = subtitle,
                     style = AppTheme.typography.bodySmall,
                     color = AppTheme.materialColors.onSurfaceVariant,
                 )
             }
         }
     }
 }
 
 @Preview
 @Composable
 private fun SurferInviteRowPreview() {
     SurferComponentPreview {
         SurferInviteRow(
             modifier = Modifier.padding(16.dp),
             title = "Invite people",
             subtitle = "Share a link or send an email",
             onClick = {},
         )
     }
 }