Package-level declarations

Types

Link copied to clipboard
data class StylishCommandItem(val label: String, val onSelect: () -> Unit, val icon: @Composable () -> Unit? = null, val keywords: List<String> = emptyList(), val enabled: Boolean = true)

One selectable entry of a StylishCommandPalette.

Link copied to clipboard

Pure event set used by StylishDataTableState.reduce.

Link copied to clipboard
fun interface StylishDataTableAdapter<T>

Platform- and transport-neutral boundary for server-backed data tables.

Link copied to clipboard
data class StylishDataTableCellPosition(val rowIndex: Int, val columnId: String)

A stable coordinate used by the optional cell-level keyboard navigation.

Link copied to clipboard
class StylishDataTableColumn<T>(val id: String, val title: String, val weight: Float = 1.0f, val horizontalAlignment: Alignment.Horizontal = Alignment.Start, val comparator: Comparator<T>? = null, val header: @Composable () -> Unit? = null, val exportValue: (T) -> Any?? = null, val cell: @Composable (T) -> Unit)

Column definition for StylishDataTable. The composable cell slot supports arbitrary UI, while comparator opts the column into sorting.

Link copied to clipboard
data class StylishDataTableEngineResult<T>(val filteredRows: List<T>, val sortedRows: List<T>, val visibleRows: List<T>, val page: Int, val pageCount: Int)

Pure, UI-free result of filtering, sorting, and paging a data-table collection.

Link copied to clipboard
data class StylishDataTableQuery(val filter: String = "", val page: Int = 1, val pageSize: Int = 25, val sort: List<StylishDataTableSortState> = emptyList(), val visibleColumnIds: List<String> = emptyList(), val columnOrder: List<String> = emptyList())

Serializable-agnostic query state for server-backed tables.

Link copied to clipboard
data class StylishDataTableQueryResult<T>(val rows: List<T>, val totalRowCount: Int? = null, val hasNextPage: Boolean? = null)

A page returned by a server-backed StylishDataTableQuery.

Link copied to clipboard
data class StylishDataTableSortState(val columnId: String, val direction: StylishDataTableSortDirection = StylishDataTableSortDirection.Ascending)

Hoistable sorting state identified by a column id.

Link copied to clipboard
data class StylishDataTableState(val filterText: String = "", val page: Int = 1, val pageSize: Int? = null, val sortStates: List<StylishDataTableSortState> = emptyList(), val selectedKeys: Set<Any> = emptySet(), val expandedKeys: Set<Any> = emptySet(), val visibleColumnIds: Set<String> = emptySet(), val columnOrder: List<String> = emptyList(), val columnWidths: Map<String, Dp> = emptyMap(), val pinnedColumnIds: Set<String> = emptySet(), val freezePinnedColumns: Boolean = false, val focusedCell: StylishDataTableCellPosition? = null)

Headless, transport-neutral state for StylishDataTable.

Link copied to clipboard

Shared pure reducer used by Compose, SwiftUI, Web, and desktop host stores.

Link copied to clipboard
data class StylishMenu(val label: String, val items: List<StylishMenuItem>)

A top-level menu entry for StylishMenubar.

Link copied to clipboard
data class StylishMenuItem(val label: String, val onClick: () -> Unit, val enabled: Boolean = true)

An action item shared by context menus and menubars.

Link copied to clipboard

Pure actions accepted by StylishTransferState.reduce.

Link copied to clipboard
data class StylishTransferItem<T>(val key: Any, val value: T, val label: String)

An item rendered by StylishTransfer.

Link copied to clipboard

Selection behavior for highlighted rows in StylishTransfer.

Link copied to clipboard
data class StylishTransferState(val selectedKeys: Set<Any> = emptySet(), val highlightedKeys: Set<Any> = emptySet())

Hoisted selection/highlight state for StylishTransfer.

Link copied to clipboard

Shared pure reducer used by Compose, SwiftUI, Web, and desktop host stores.

Link copied to clipboard
sealed interface StylishTreeAction

Pure actions accepted by StylishTreeState.reduce.

Link copied to clipboard
class StylishTreeLayoutEngine<T>(val rowHeightPx: Float = 48.0f, val indentPx: Float = 20.0f, val horizontalPaddingPx: Float = 0.0f) : StylishLayoutEngine<StylishTreeLayoutInput<T>>

Deterministic tree layout and semantics plan for native and Compose renderers.

Link copied to clipboard
data class StylishTreeLayoutInput<T>(val visibleNodes: List<StylishVisibleTreeNode<T>>, val expandedIds: Set<Any> = emptySet(), val selectedId: Any? = null, val focusedId: Any? = null)

Input to StylishTreeLayoutEngine, independent from a Compose tree or platform view.

Link copied to clipboard
data class StylishTreeNode<T>(val id: Any, val label: String, val value: T, val children: List<StylishTreeNode<T>> = emptyList())

A recursive, keyboard-actionable tree node.

Link copied to clipboard
data class StylishTreeState(val expandedIds: Set<Any> = emptySet(), val selectedId: Any? = null, val focusedId: Any? = null)

Hoisted interaction state for StylishTree.

Link copied to clipboard

Shared pure reducer used by Compose, SwiftUI, Web, and desktop host stores.

Link copied to clipboard
data class StylishUploadFile(val name: String, val sizeBytes: Long, val mimeType: String? = null)

Metadata supplied by a platform file picker to StylishUpload.

Link copied to clipboard
data class StylishVisibleTreeNode<T>(val node: StylishTreeNode<T>, val depth: Int)

A visible tree node paired with its indentation depth.

Functions

Link copied to clipboard
fun <T> exportStylishDataTable(rows: List<T>, columns: List<StylishDataTableColumn<T>>, format: StylishDataTableExportFormat = StylishDataTableExportFormat.Csv): String

Serializes rows using the column-level StylishDataTableColumn.exportValue adapters. Columns without an adapter are exported as an empty value rather than introspecting arbitrary Kotlin objects. This keeps the common API deterministic on every target.

Link copied to clipboard

Flattens only expanded branches of a tree in display order.

Link copied to clipboard
Link copied to clipboard

Reduces a headless table event without Compose or transport dependencies.

Returns the next transfer state without coupling selection to Compose.

Returns the next tree state without coupling state transitions to Compose.

Link copied to clipboard
fun <T> resolveStylishDataTableRows(rows: List<T>, columns: List<StylishDataTableColumn<T>>, filterText: String = "", filterPredicate: (T, String) -> Boolean? = null, sortStates: List<StylishDataTableSortState> = emptyList(), page: Int = 1, pageSize: Int? = null): StylishDataTableEngineResult<T>

Applies the data-table query pipeline without Compose state or platform APIs.

Link copied to clipboard
fun StylishAlertDialog(onDismissRequest: () -> Unit, modifier: Modifier = Modifier, icon: @Composable () -> Unit? = null, title: @Composable () -> Unit? = null, text: @Composable () -> Unit? = null, confirmButton: @Composable () -> Unit, dismissButton: @Composable () -> Unit? = null, containerColor: Color = MaterialTheme.colorScheme.surface.copy(alpha = 0.9f), shape: Shape = RoundedCornerShape(StylishTheme.dimensions.connectedCornerRadius), tonalElevation: Dp = 1.dp, properties: DialogProperties = DialogProperties(usePlatformDefaultWidth = true))

A modal alert dialog that prompts the user for a decision, wrapping the Material 3 AlertDialog with Stylish defaults.

Link copied to clipboard
fun StylishBottomSheet(onDismiss: () -> Unit, modifier: Modifier = Modifier, skipPartiallyExpanded: Boolean = false, sheetState: SheetState = rememberModalBottomSheetState( skipPartiallyExpanded = skipPartiallyExpanded, ), shape: Shape = RoundedCornerShape( topStart = StylishTheme.dimensions.connectedCornerRadius, topEnd = StylishTheme.dimensions.connectedCornerRadius, ), containerColor: Color = MaterialTheme.colorScheme.surface.copy(alpha = 0.9f), contentColor: Color = MaterialTheme.colorScheme.onSurface, tonalElevation: Dp = 1.dp, scrimColor: Color = BottomSheetDefaults.ScrimColor, dragHandle: @Composable () -> Unit? = null, contentWindowInsets: @Composable () -> WindowInsets = { BottomSheetDefaults.windowInsets }, properties: ModalBottomSheetProperties = ModalBottomSheetProperties(), content: @Composable ColumnScope.() -> Unit)

A modal bottom sheet styled with the Stylish design language — rounded top corners from StylishTheme.dimensions.connectedCornerRadius and theme-aware container colors.

Link copied to clipboard
fun StylishColorPicker(color: Color, onColorChange: (Color) -> Unit, modifier: Modifier = Modifier, showAlpha: Boolean = true)

A platform-neutral RGB/alpha color editor.

Link copied to clipboard
fun StylishCommandPalette(expanded: Boolean, onDismiss: () -> Unit, query: String, onQueryChange: (String) -> Unit, modifier: Modifier = Modifier, items: List<StylishCommandItem>, placeholder: String = "コマンドを入力…", maxResults: Int = 8, shape: Shape = RoundedCornerShape(StylishTheme.dimensions.connectedCornerRadius), containerColor: Color = MaterialTheme.colorScheme.surfaceContainerHigh, contentColor: Color = MaterialTheme.colorScheme.onSurface, width: Dp = 480.dp)

A searchable command palette — the web "Command/⌘K" pattern from shadcn/ui (cmdk) and Radix UI.

Link copied to clipboard
fun <T> StylishConnectedSegmentedControl(options: List<StylishSegmentedOption<T>>, selectedValue: T, onSelectedChange: (T) -> Unit, modifier: Modifier = Modifier, labelStyle: TextStyle = MaterialTheme.typography.labelLarge, labelMaxLines: Int = 1, labelOverflow: TextOverflow = TextOverflow.Ellipsis, selectedColors: ButtonColors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.primary, contentColor = MaterialTheme.colorScheme.onPrimary, ), defaultColors: ButtonColors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.stylishComponentColors.groupedContainer, contentColor = MaterialTheme.colorScheme.onSurface, ), spacing: Dp = StylishTheme.dimensions.connectedSpacing)

A connected segmented control for mutually exclusive selection among a small set of options.

Link copied to clipboard
fun StylishContextMenu(expanded: Boolean, onDismissRequest: () -> Unit, items: List<StylishMenuItem>, modifier: Modifier = Modifier, content: @Composable () -> Unit)

Controlled context menu primitive.

Link copied to clipboard
fun <T> StylishDataTable(rows: List<T>, columns: List<StylishDataTableColumn<T>>, rowKey: (T) -> Any, state: StylishDataTableState, onStateChange: (StylishDataTableState) -> Unit, modifier: Modifier = Modifier, stickyHeader: Boolean = true, contentPadding: PaddingValues = PaddingValues(0.dp), listState: LazyListState = rememberLazyListState(), headerContainerColor: Color = MaterialTheme.colorScheme.surfaceContainerHighest, selectedRowColor: Color = MaterialTheme.colorScheme.secondaryContainer, rowColor: Color = MaterialTheme.colorScheme.surface, isLoading: Boolean = false, error: Throwable? = null, loadingContent: @Composable () -> Unit? = null, emptyContent: @Composable () -> Unit? = null, errorContent: @Composable () -> Unit? = null, filterPredicate: (T, String) -> Boolean? = null, filterPlaceholder: String = "", expandedContent: @Composable (T) -> Unit? = null, onExport: (List<T>) -> Unit? = null, onExportText: (String) -> Unit? = null, exportFormat: StylishDataTableExportFormat = StylishDataTableExportFormat.Csv, exportLabel: String = "")

Renders StylishDataTable from a single hoisted StylishDataTableState.

fun <T> StylishDataTable(rows: List<T>, columns: List<StylishDataTableColumn<T>>, rowKey: (T) -> Any, modifier: Modifier = Modifier, sortState: StylishDataTableSortState? = null, onSortStateChange: (StylishDataTableSortState) -> Unit? = null, sortStates: List<StylishDataTableSortState> = emptyList(), onSortStatesChange: (List<StylishDataTableSortState>) -> Unit? = null, selectedKeys: Set<Any> = emptySet(), onSelectedKeysChange: (Set<Any>) -> Unit? = null, stickyHeader: Boolean = true, contentPadding: PaddingValues = PaddingValues(0.dp), listState: LazyListState = rememberLazyListState(), headerContainerColor: Color = MaterialTheme.colorScheme.surfaceContainerHighest, selectedRowColor: Color = MaterialTheme.colorScheme.secondaryContainer, rowColor: Color = MaterialTheme.colorScheme.surface, isLoading: Boolean = false, error: Throwable? = null, loadingContent: @Composable () -> Unit? = null, emptyContent: @Composable () -> Unit? = null, errorContent: @Composable () -> Unit? = null, filterText: String = "", onFilterTextChange: (String) -> Unit? = null, filterPredicate: (T, String) -> Boolean? = null, filterPlaceholder: String = "", page: Int = 1, pageSize: Int? = null, onPageChange: (Int) -> Unit? = null, expandedKeys: Set<Any> = emptySet(), onExpandedKeysChange: (Set<Any>) -> Unit? = null, expandedContent: @Composable (T) -> Unit? = null, visibleColumnIds: Set<String> = emptySet(), columnOrder: List<String> = emptyList(), onColumnOrderChange: (List<String>) -> Unit? = null, columnWidths: Map<String, Dp> = emptyMap(), onColumnWidthsChange: (Map<String, Dp>) -> Unit? = null, pinnedColumnIds: Set<String> = emptySet(), freezePinnedColumns: Boolean = false, focusedCell: StylishDataTableCellPosition? = null, onFocusedCellChange: (StylishDataTableCellPosition) -> Unit? = null, onExport: (List<T>) -> Unit? = null, onExportText: (String) -> Unit? = null, exportFormat: StylishDataTableExportFormat = StylishDataTableExportFormat.Csv, exportLabel: String = "")

A virtualized, sortable, selectable data table with stable row identity and a sticky header.

Link copied to clipboard
fun StylishDeleteConfirmDialog(title: String, modifier: Modifier = Modifier, message: String, confirmLabel: String, cancelLabel: String, onConfirm: () -> Unit, onDismiss: () -> Unit, titleMaxLines: Int = Int.MAX_VALUE, titleOverflow: TextOverflow = TextOverflow.Ellipsis, titleStyle: TextStyle = MaterialTheme.typography.titleLarge, messageMaxLines: Int = Int.MAX_VALUE, messageOverflow: TextOverflow = TextOverflow.Ellipsis, messageStyle: TextStyle = MaterialTheme.typography.bodyMedium, messageColor: Color = MaterialTheme.colorScheme.onSurfaceVariant, cancelColors: ButtonColors? = null, confirmColors: ButtonColors? = null, confirmEnabled: Boolean = true, cancelEnabled: Boolean = true, animate: Boolean = true, properties: DialogProperties = DialogProperties(usePlatformDefaultWidth = false))

A confirmation dialog for destructive delete operations.

Link copied to clipboard
fun StylishDialogActions(confirmLabel: String, cancelLabel: String, onConfirm: () -> Unit, onCancel: () -> Unit, modifier: Modifier = Modifier, cancelColors: ButtonColors? = null, confirmColors: ButtonColors? = null, spacing: Dp = StylishTheme.dimensions.connectedSpacing, confirmEnabled: Boolean = true, cancelEnabled: Boolean = true, cancelContent: @Composable () -> Unit? = null, confirmContent: @Composable () -> Unit? = null)

A confirm/cancel button row for the bottom of a dialog.

Link copied to clipboard
fun StylishDismissibleNavigationDrawer(drawerContent: @Composable ColumnScope.() -> Unit, modifier: Modifier = Modifier, drawerState: DrawerState = rememberDrawerState(DrawerValue.Closed), gesturesEnabled: Boolean = true, shape: Shape = DrawerDefaults.shape, containerColor: Color = DrawerDefaults.standardContainerColor, contentColor: Color = contentColorFor(containerColor), tonalElevation: Dp = DrawerDefaults.DismissibleDrawerElevation, windowInsets: WindowInsets = DrawerDefaults.windowInsets, content: @Composable () -> Unit)

A dismissible navigation drawer with Stylish theme defaults, wrapping the Material 3 DismissibleNavigationDrawer.

Link copied to clipboard
fun StylishHoverCard(modifier: Modifier = Modifier, trigger: @Composable () -> Unit, shape: Shape = RoundedCornerShape(StylishTheme.dimensions.connectedCornerRadius), containerColor: Color = MaterialTheme.colorScheme.surfaceContainerHigh, contentColor: Color = MaterialTheme.colorScheme.onSurface, width: Dp = 320.dp, delayMillis: Int = 300, content: @Composable ColumnScope.() -> Unit)

A hover-triggered info card — the web "HoverCard" pattern from Radix UI and shadcn/ui.

Link copied to clipboard
fun StylishMenubar(menus: List<StylishMenu>, modifier: Modifier = Modifier)

A keyboard-friendly menubar built from standard Compose menu primitives.

Link copied to clipboard
fun StylishModalNavigationDrawer(drawerContent: @Composable ColumnScope.() -> Unit, modifier: Modifier = Modifier, drawerState: DrawerState = rememberDrawerState(DrawerValue.Closed), gesturesEnabled: Boolean = true, shape: Shape = DrawerDefaults.shape, containerColor: Color = DrawerDefaults.modalContainerColor, contentColor: Color = contentColorFor(containerColor), tonalElevation: Dp = DrawerDefaults.ModalDrawerElevation, windowInsets: WindowInsets = DrawerDefaults.windowInsets, scrimColor: Color = DrawerDefaults.scrimColor, content: @Composable () -> Unit)

A modal navigation drawer with Stylish theme defaults, wrapping the Material 3 ModalNavigationDrawer.

Link copied to clipboard
fun StylishMultiChoiceSegmentedButtonRow(modifier: Modifier = Modifier, space: Dp = SegmentedButtonDefaults.BorderWidth, content: @Composable MultiChoiceSegmentedButtonRowScope.() -> Unit)

A row of multi-select segmented buttons, wrapping the Material 3 MultiChoiceSegmentedButtonRow with Stylish defaults.

Link copied to clipboard
fun StylishNavigationBar(items: List<StylishNavigationItem>, modifier: Modifier = Modifier, labelStyle: TextStyle = MaterialTheme.typography.labelSmall, iconSize: Dp = 24.dp, containerColor: Color = MaterialTheme.colorScheme.surfaceContainer, selectedContentColor: Color = MaterialTheme.colorScheme.primary, unselectedContentColor: Color = MaterialTheme.colorScheme.onSurfaceVariant, disabledContentColor: Color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f), alwaysShowLabel: Boolean = true, labelMaxLines: Int = 1, labelOverflow: TextOverflow = TextOverflow.Ellipsis, windowInsets: WindowInsets = WindowInsets.navigationBars)

A bottom navigation bar that displays a row of StylishNavigationItem destinations. Each destination shows an icon, a label, and an optional badge. The selected destination is highlighted with an animated pill behind its icon and the primary content color.

Link copied to clipboard
fun StylishNavigationRail(modifier: Modifier = Modifier, containerColor: Color = NavigationRailDefaults.ContainerColor, contentColor: Color = contentColorFor(containerColor), header: @Composable ColumnScope.() -> Unit? = null, windowInsets: WindowInsets = NavigationRailDefaults.windowInsets, content: @Composable ColumnScope.() -> Unit)

A Material 3 navigation rail with Stylish theme defaults.

Link copied to clipboard
fun StylishNavigationRailItem(selected: Boolean, onClick: () -> Unit, icon: @Composable () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, label: @Composable () -> Unit? = null, alwaysShowLabel: Boolean = true, colors: NavigationRailItemColors = NavigationRailItemDefaults.colors(), interactionSource: MutableInteractionSource? = null)

A single destination inside StylishNavigationRail, wrapping the Material 3 NavigationRailItem with M3 default colors.

Link copied to clipboard
fun StylishPermanentNavigationDrawer(drawerContent: @Composable ColumnScope.() -> Unit, modifier: Modifier = Modifier, shape: Shape = DrawerDefaults.shape, containerColor: Color = DrawerDefaults.standardContainerColor, contentColor: Color = contentColorFor(containerColor), tonalElevation: Dp = DrawerDefaults.PermanentDrawerElevation, windowInsets: WindowInsets = DrawerDefaults.windowInsets, content: @Composable () -> Unit)

A permanent navigation drawer with Stylish theme defaults, wrapping the Material 3 PermanentNavigationDrawer.

Link copied to clipboard
fun StylishPopconfirm(expanded: Boolean, onExpandedChange: (Boolean) -> Unit, modifier: Modifier = Modifier, anchor: @Composable () -> Unit, title: String, description: String? = null, confirmLabel: String = "OK", cancelLabel: String = "キャンセル", onConfirm: () -> Unit, onCancel: () -> Unit = {}, confirmColors: ButtonColors? = null, titleStyle: TextStyle = MaterialTheme.typography.titleSmall, descriptionStyle: TextStyle = MaterialTheme.typography.bodySmall, shape: Shape = RoundedCornerShape(StylishTheme.dimensions.connectedCornerRadius), width: Dp = 260.dp)

An inline confirmation anchored to a trigger — the web "Popconfirm" pattern from Ant Design.

Link copied to clipboard
fun StylishPopover(expanded: Boolean, onExpandedChange: (Boolean) -> Unit, modifier: Modifier = Modifier, anchor: @Composable () -> Unit, shape: Shape = RoundedCornerShape(StylishTheme.dimensions.connectedCornerRadius), containerColor: Color = MaterialTheme.colorScheme.surfaceContainerHigh, contentColor: Color = MaterialTheme.colorScheme.onSurface, contentPadding: PaddingValues = PaddingValues( horizontal = StylishTheme.dimensions.controlPadding, vertical = StylishTheme.dimensions.controlVerticalPadding, ), tonalElevation: Dp = StylishTheme.dimensions.floatingElevation, offset: Dp = 8.dp, width: Dp = 280.dp, properties: PopupProperties = PopupProperties(focusable = true), content: @Composable ColumnScope.() -> Unit)

A popover — anchored floating content for arbitrary use (filters, calendars, help text) — the MUI Popover / Radix Popover counterpart.

Link copied to clipboard
fun StylishQrCode(matrix: List<List<Boolean>>, modifier: Modifier = Modifier, darkColor: Color = Color.Black, lightColor: Color = Color.White, contentDescription: String = "")

Renders a QR-like boolean matrix supplied by a platform encoder.

Link copied to clipboard
fun StylishScrollArea(modifier: Modifier = Modifier, content: @Composable () -> Unit)

Scrollable container with a common cross-platform API.

Link copied to clipboard
fun StylishSearchBar(query: String, onQueryChange: (String) -> Unit, onSearch: (String) -> Unit, active: Boolean, onActiveChange: (Boolean) -> Unit, modifier: Modifier = Modifier, placeholder: @Composable () -> Unit? = null, leadingIcon: @Composable () -> Unit? = null, trailingIcon: @Composable () -> Unit? = null, shape: Shape = RoundedCornerShape(StylishTheme.dimensions.connectedCornerRadius), colors: SearchBarColors = SearchBarDefaults.colors( containerColor = MaterialTheme.colorScheme.surfaceContainerHigh, ), content: @Composable ColumnScope.() -> Unit = {})

A search bar with a collapsed input field and an expanded results panel, wrapping the Material 3 SearchBar with Stylish defaults.

Link copied to clipboard
fun MultiChoiceSegmentedButtonRowScope.StylishSegmentedButton(checked: Boolean, onCheckedChange: (Boolean) -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, shape: Shape = SegmentedButtonDefaults.baseShape, colors: SegmentedButtonColors = SegmentedButtonDefaults.colors(), border: BorderStroke = BorderStroke( width = SegmentedButtonDefaults.BorderWidth, color = when { enabled && checked -> colors.activeBorderColor enabled -> colors.inactiveBorderColor checked -> colors.disabledActiveBorderColor else -> colors.disabledInactiveBorderColor }, ), contentPadding: PaddingValues = SegmentedButtonDefaults.ContentPadding, interactionSource: MutableInteractionSource? = null, icon: @Composable () -> Unit = { SegmentedButtonDefaults.Icon(checked) }, label: @Composable () -> Unit)

A single multi-select option inside StylishMultiChoiceSegmentedButtonRow, wrapping the Material 3 multi-choice androidx.compose.material3.SegmentedButton.

fun SingleChoiceSegmentedButtonRowScope.StylishSegmentedButton(selected: Boolean, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, shape: Shape = SegmentedButtonDefaults.baseShape, colors: SegmentedButtonColors = SegmentedButtonDefaults.colors(), border: BorderStroke = BorderStroke( width = SegmentedButtonDefaults.BorderWidth, color = when { enabled && selected -> colors.activeBorderColor enabled -> colors.inactiveBorderColor selected -> colors.disabledActiveBorderColor else -> colors.disabledInactiveBorderColor }, ), contentPadding: PaddingValues = SegmentedButtonDefaults.ContentPadding, interactionSource: MutableInteractionSource? = null, icon: @Composable () -> Unit = { SegmentedButtonDefaults.Icon(selected) }, label: @Composable () -> Unit)

A single mutually exclusive option inside StylishSingleChoiceSegmentedButtonRow, wrapping the Material 3 single-choice androidx.compose.material3.SegmentedButton.

Link copied to clipboard
fun StylishShortNavigationBar(modifier: Modifier = Modifier, containerColor: Color = ShortNavigationBarDefaults.containerColor, contentColor: Color = ShortNavigationBarDefaults.contentColor, windowInsets: WindowInsets = ShortNavigationBarDefaults.windowInsets, arrangement: ShortNavigationBarArrangement = ShortNavigationBarDefaults.arrangement, content: @Composable () -> Unit)

A Material 3 short navigation bar with Stylish theme defaults.

Link copied to clipboard
fun StylishShortNavigationBarItem(selected: Boolean, onClick: () -> Unit, icon: @Composable () -> Unit, label: @Composable () -> Unit? = null, modifier: Modifier = Modifier, enabled: Boolean = true, iconPosition: NavigationItemIconPosition = NavigationItemIconPosition.Top, colors: NavigationItemColors = ShortNavigationBarItemDefaults.colors(), interactionSource: MutableInteractionSource? = null)

A single destination inside StylishShortNavigationBar, wrapping the Material 3 ShortNavigationBarItem with M3 default colors.

Link copied to clipboard
fun StylishSingleChoiceSegmentedButtonRow(modifier: Modifier = Modifier, space: Dp = SegmentedButtonDefaults.BorderWidth, content: @Composable SingleChoiceSegmentedButtonRowScope.() -> Unit)

A row of mutually exclusive segmented buttons, wrapping the Material 3 SingleChoiceSegmentedButtonRow with Stylish defaults.

Link copied to clipboard
fun StylishTabBar(tabs: List<String>, selectedIndex: Int, onSelectedChange: (Int) -> Unit, modifier: Modifier = Modifier, tabIcons: List<ImageVector>? = null, leadingContents: List<@Composable () -> Unit?>? = null, labelStyle: TextStyle = MaterialTheme.typography.labelLarge, containerColor: Color = MaterialTheme.colorScheme.surfaceContainer, selectedContainerColor: Color? = null, selectedContentColor: Color? = null, unselectedContainerColor: Color? = null, unselectedContentColor: Color? = null, enabled: Boolean = true, scrollState: ScrollState = rememberScrollState())

A horizontally scrollable row of tab-like chips for switching between views within a page. Each tab is rendered as a StylishChip with animated selection, making this a lightweight alternative to StylishConnectedSegmentedControl when the number of tabs is dynamic or exceeds the screen width.

Link copied to clipboard
fun <T> StylishTransfer(available: List<StylishTransferItem<T>>, state: StylishTransferState, onStateChange: (StylishTransferState) -> Unit, modifier: Modifier = Modifier, title: String = "", selectedTitle: String = "", selectionMode: StylishTransferSelectionMode = StylishTransferSelectionMode.Multiple)

Controlled transfer overload using a single hoisted state object and pure actions. This allows selection/highlight state to be persisted or shared with a store.

fun <T> StylishTransfer(available: List<StylishTransferItem<T>>, selectedKeys: Set<Any>, onSelectedKeysChange: (Set<Any>) -> Unit, modifier: Modifier = Modifier, title: String = "", selectedTitle: String = "", selectionMode: StylishTransferSelectionMode = StylishTransferSelectionMode.Multiple)

A controlled dual-list transfer control for moving items between panes.

Link copied to clipboard
fun <T> StylishTree(nodes: List<StylishTreeNode<T>>, state: StylishTreeState, onStateChange: (StylishTreeState) -> Unit, modifier: Modifier = Modifier)

Controlled tree overload using a single hoisted state object and pure actions. Use this form when navigation state must be persisted, replayed, or shared with a view-model/store. The legacy expanded/selected callbacks remain source-compatible.

fun <T> StylishTree(nodes: List<StylishTreeNode<T>>, modifier: Modifier = Modifier, expandedIds: Set<Any> = emptySet(), onExpandedIdsChange: (Set<Any>) -> Unit? = null, selectedId: Any? = null, onSelectedIdChange: (Any) -> Unit? = null)

A controlled tree whose flattened visible rows are virtualized by LazyColumn.

Link copied to clipboard
fun StylishUpload(files: List<StylishUploadFile>, onFilesChange: (List<StylishUploadFile>) -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, label: String = "", onRequestFiles: () -> Unit? = null)

Platform-neutral upload queue. A platform adapter supplies selected files.

Link copied to clipboard
fun StylishWideNavigationRail(modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit)

Wide navigation rail variant that reserves space for persistent labels.

Link copied to clipboard

Stable string identity used by every platform renderer for a tree node.