Package-level declarations

Types

Link copied to clipboard
@Immutable
data class DataTableColors(val container: Color = Color(0xFFFAFAFA), val header: Color = Color(0xFFF0F0F0), val divider: Color = Color(0xFFDDDDDD), val selectedRow: Color = Color(0x4D1976D2), val expandedRow: Color = Color(0x80F0F0F0), val onSurface: Color = Color(0xFF1C1C1C), val onSurfaceSecondary: Color = Color(0xFF757575), val checkboxChecked: Color = Color(0xFF1976D2), val checkboxUnchecked: Color = Color(0xFF757575), val checkboxCheckmark: Color = Color.White, val iconTint: Color = Color(0xFF616161), val disabledContent: Color = Color(0xFFBDBDBD), val rowAlternate: Color = Color.Transparent, val hoveredRow: Color = Color(0x1A000000), val focusedRowBorder: Color = Color(0xFF1976D2))

Colors used throughout the DataTable.

Link copied to clipboard

Factory functions for DataTableColors and DataTableTextStyles.

Link copied to clipboard

Density presets that control vertical and horizontal padding for rows and headers.

Link copied to clipboard
@Immutable
data class DataTableHeader<T>(val key: String, val title: String = "", val value: (T) -> Any?? = null, val sortable: Boolean = true, val width: Dp? = null, val align: TextAlign = TextAlign.Start, val fixed: Boolean = false, val visible: Boolean = true, val maxLines: Int = Int.MAX_VALUE, val overflow: TextOverflow = TextOverflow.Clip, val comparator: <Error class: unknown class><T>? = null, val children: List<DataTableHeader<T>>? = null, val headerContent: @Composable () -> Unit? = null, val cellContent: @Composable (T) -> Unit? = null)

Describes a column in the DataTable.

Link copied to clipboard
@Stable
class DataTableState(lazyListState: LazyListState, horizontalScrollState: ScrollState)

State holder for DataTable.

Link copied to clipboard
@Immutable
data class DataTableTextStyles(val headerCell: TextStyle = TextStyle( fontSize = 14.sp, fontWeight = FontWeight.Bold, color = Color(0xFF1C1C1C), ), val bodyCell: TextStyle = TextStyle( fontSize = 14.sp, fontWeight = FontWeight.Normal, color = Color(0xFF1C1C1C), ), val footer: TextStyle = TextStyle( fontSize = 12.sp, fontWeight = FontWeight.Normal, color = Color(0xFF1C1C1C), ), val loading: TextStyle = TextStyle( fontSize = 14.sp, fontWeight = FontWeight.Normal, color = Color(0xFF1C1C1C), ), val noData: TextStyle = TextStyle( fontSize = 16.sp, fontWeight = FontWeight.Normal, color = Color(0x991C1C1C), ), val pagination: TextStyle = TextStyle( fontSize = 14.sp, fontWeight = FontWeight.Normal, color = Color(0xFF1C1C1C), ))

Text styles used throughout the DataTable.

Link copied to clipboard

Controls how row selection behaves.

Link copied to clipboard

Represents the sort order applied to a column.

Link copied to clipboard
@Immutable
data class SortState(val key: String = "", val order: SortOrder = SortOrder.NONE)

Current sort configuration for a single column.

Functions

Link copied to clipboard
@Composable
fun <T> DataTable(items: List<T>, headers: List<DataTableHeader<T>>, itemKey: (T) -> Any, modifier: Modifier = Modifier, state: DataTableState = rememberDataTableState(), showSelect: Boolean = false, selectionMode: SelectionMode = if (showSelect) SelectionMode.MULTI else SelectionMode.NONE, selectedKeys: Set<Any> = emptySet(), onSelectionChange: (Set<Any>) -> Unit? = null, showExpand: Boolean = false, expandedKeys: Set<Any> = emptySet(), onExpandChange: (Set<Any>) -> Unit? = null, expandContent: @Composable (T) -> Unit? = null, density: DataTableDensity = DataTableDensity.DEFAULT, colors: DataTableColors = DataTableDefaults.colors(), textStyles: DataTableTextStyles = DataTableDefaults.textStyles(), sortBy: SortState = SortState(), onSortChange: (SortState) -> Unit? = null, multiSortBy: List<SortState> = emptyList(), onMultiSortChange: (List<SortState>) -> Unit? = null, manualSorting: Boolean = false, resizableColumns: Boolean = false, minColumnWidth: Dp = 40.dp, hideDefaultHeader: Boolean = false, hideDefaultFooter: Boolean = false, loading: Boolean = false, loadingContent: @Composable () -> Unit? = null, headerContent: @Composable () -> Unit? = null, footerContent: @Composable () -> Unit? = null, noDataContent: @Composable () -> Unit? = null, groupBy: (T) -> String? = null, groupHeaderContent: @Composable (String, List<T>) -> Unit? = null, groupSummaryContent: @Composable (String, List<T>) -> Unit? = null, onRowClick: (T) -> Unit? = null, onRowDoubleClick: (T) -> Unit? = null, onRowContextMenu: (T, Offset) -> Unit? = null, showPagination: Boolean = false, itemsPerPage: Int = 10, currentPage: Int = 0, onPageChange: (Int) -> Unit? = null, itemsPerPageOptions: List<Int> = listOf(10, 25, 50, 100), onItemsPerPageChange: (Int) -> Unit? = null, manualPagination: Boolean = false, totalItems: Int? = null, showScrollbars: Boolean = true, scrollbarThickness: Dp = 8.dp)

A flexible, Compose Multiplatform data table built entirely on Foundation APIs.

Link copied to clipboard
@Composable
fun rememberDataTableState(initialFirstVisibleItemIndex: Int = 0, initialFirstVisibleItemScrollOffset: Int = 0): DataTableState

Creates and remembers a DataTableState.