Package-level declarations

JengaTabs and JengaSegmentedControl.

Types

Link copied to clipboard
class JengaSegmentedControlColors(val track: Color, val selectedSegment: Color, val selectedContent: Color, val unselectedContent: Color, val disabledContent: Color = unselectedContent.copy(alpha = 0.38f), val selectedBorder: Color = Color.Transparent)

Resolved colors for a JengaSegmentedControl. Override via JengaSegmentedControlDefaults.colors.

Link copied to clipboard

Defaults for JengaSegmentedControl. The composable members follow the theme's JengaSegmentedControlStyle; the constants are Jenga's built-in values, and JengaSegmentedControl resolves the theme's values over them.

Link copied to clipboard
class JengaSegmentedControlStyle(val shape: Shape? = null, val segmentShape: Shape? = null, val segmentMinHeight: Dp? = null, val trackPadding: Dp? = null, val selectedElevation: Dp? = null, val textStyle: TextStyle? = null, val selectedTextStyle: TextStyle? = null, val colors: JengaSegmentedControlColors? = null)

Theme-wide style for every JengaSegmentedControl, set through io.github.joelkanyi.jenga.theme.JengaComponentStyles.segmentedControl. A null value keeps Jenga's default; arguments passed to a call still win.

Link copied to clipboard
Link copied to clipboard
class JengaTabsColors(val selectedContent: Color, val unselectedContent: Color, val indicator: Color, val divider: Color, val dot: Color = indicator)

Resolved colors for JengaTabs. Override via JengaTabsDefaults.colors.

Link copied to clipboard

Defaults and token mappings for JengaTabs. The composable members follow the theme's JengaTabsStyle; the constants are Jenga's built-in values, and JengaTabs resolves the theme's values over them.

Link copied to clipboard
class JengaTabsStyle(val arrangement: JengaTabsArrangement? = null, val textStyle: TextStyle? = null, val selectedTextStyle: TextStyle? = null, val minHeight: Dp? = null, val spacing: Dp? = null, val contentPadding: PaddingValues? = null, val colors: JengaTabsColors? = null)

Theme-wide style for every JengaTabs, set through io.github.joelkanyi.jenga.theme.JengaComponentStyles.tabs. A null value keeps Jenga's default; arguments passed to a call still win.

Functions

Link copied to clipboard
fun JengaSegmentedControl(selectedIndex: Int?, segments: List<String>, onSelect: (Int) -> Unit, modifier: Modifier = Modifier, shape: Shape = JengaSegmentedControlDefaults.shape, colors: JengaSegmentedControlColors = JengaSegmentedControlDefaults.colors(), isEnabled: (Int) -> Boolean = { true }, segmentShape: Shape = JengaTheme.components.segmentedControl?.segmentShape ?: shape, segmentMinHeight: Dp = JengaTheme.components.segmentedControl?.segmentMinHeight ?: JengaSegmentedControlDefaults.SegmentMinHeight, trackPadding: Dp = JengaTheme.components.segmentedControl?.trackPadding ?: JengaSegmentedControlDefaults.TrackPadding, selectedElevation: Dp = JengaTheme.components.segmentedControl?.selectedElevation ?: JengaSegmentedControlDefaults.SelectedElevation, textStyle: TextStyle = JengaSegmentedControlDefaults.textStyle, selectedTextStyle: TextStyle = textStyle.merge(JengaTheme.components.segmentedControl?.selectedTextStyle))

A segmented control: a small set of mutually-exclusive options in a pill track, with the selected segment raised. A null selectedIndex shows no selection (e.g. an unanswered yes/no question).

Link copied to clipboard
fun JengaTabs(selectedIndex: Int, tabs: List<String>, onSelect: (Int) -> Unit, modifier: Modifier = Modifier, arrangement: JengaTabsArrangement = JengaTheme.components.tabs?.arrangement ?: JengaTabsArrangement.Fill, dotted: Set<Int> = emptySet(), textStyle: TextStyle = JengaTabsDefaults.textStyle, minHeight: Dp = JengaTheme.components.tabs?.minHeight ?: JengaTabsDefaults.MinHeight, spacing: Dp = JengaTabsDefaults.spacing, contentPadding: PaddingValues = JengaTabsDefaults.contentPadding, colors: JengaTabsColors = JengaTabsDefaults.colors(), selectedTextStyle: TextStyle = textStyle.merge(JengaTheme.components.tabs?.selectedTextStyle))

A row of text tabs with an underline indicator under the selected tab.