Package-level declarations

Types

Link copied to clipboard
data class ActionSheetItem(val text: String, val icon: ImageVector? = null, @DrawableRes val drawableIcon: Int? = null, val type: ActionSheetItemType = ActionSheetItemType.DEFAULT, val onClick: () -> Unit)
Link copied to clipboard

Action types for styling — matches iOS UIAlertAction.Style

Functions

Link copied to clipboard
fun ActionSheetDialog(title: String, message: String? = null, items: List<ActionSheetItem>, cancelButtonText: String = LocalContext.current.getString(R.string.cancel), onDismiss: () -> Unit, modifier: Modifier = Modifier)

Action Sheet Dialog similar to iOS UIActionSheet. Displays a list of flat, tappable rows with optional icons.

Link copied to clipboard

The 3-dot menu button + its dropdown that lives in the chat top bar's actions slot. Self-contained: owns its own expanded state, builds the menu using the theme colors, and writes the selected index back into itemMenu for the host composable to dispatch.

Link copied to clipboard
fun CustomTopBar(title: String, avatarUrl: String? = null, navigationIcon: Int? = R.drawable.kindly_ic_arrow_back, onNavigationClick: () -> Unit? = null, actions: @Composable RowScope.() -> Unit = {})

Reusable CustomTopBar that can be added to any screen Provides the same UI as the current TopBar with full customization options

Link copied to clipboard
fun GlobalConfirmationDialog(title: String, message: String, confirmButtonText: String, cancelButtonText: String = LocalContext.current.getString(R.string.cancel), icon: ImageVector? = null, @DrawableRes drawableIcon: Int? = null, onConfirm: () -> Unit, onDismiss: () -> Unit, modifier: Modifier = Modifier)

Global confirmation dialog that can be used throughout the app

Link copied to clipboard
fun KindlyDropdownMenu(expanded: Boolean, onDismissRequest: () -> Unit, items: List<String>, onItemClick: (Int) -> Unit, backgroundColor: Color, itemColor: (Int) -> Color, itemTestTag: (Int) -> String = { "menu_item_$it" }, containerTestTag: String = "dropdown_topbar_menu")

Anchored dropdown menu that scrolls when its content is taller than the available screen space. Built as a replacement for Material's DropdownMenu, which clamps its height and silently hides items that don't fit.

Link copied to clipboard
fun MainChatTopBar(title: String, avatarUrl: String?, onBackClick: () -> Unit, actions: @Composable RowScope.() -> Unit = {})

Main chat style with avatar and title - for main conversation screen

Link copied to clipboard
fun SimpleTopBar(title: String, onBackClick: () -> Unit, actions: @Composable RowScope.() -> Unit = {})

Simplified version with just back button and title - most common use case

Link copied to clipboard
fun SocketStatusIndicator(pusherState: ConnectionState?, modifier: Modifier = Modifier)
Link copied to clipboard
fun StatusIndicator(color: Color, isAnimated: Boolean = false, onTap: () -> Unit? = null, modifier: Modifier = Modifier)

Generic status indicator component - displays a colored dot with optional pulsing animation Can be used for socket status, network status, API status, etc.