Package-level declarations
Types
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
typealias KmpSliderManualEntrySlot = @Composable KmpSliderScope.(isVisible: Boolean, valueString: String, onTextChange: (String) -> Unit, onCancel: () -> Unit, onCommit: () -> Unit) -> Unit
Link copied to clipboard
data class KmpSliderScope(val userValues: State<Map<String, Float>>, val currentValues: State<Map<String, Float>>, val range: ClosedRange<Float>, val step: Float, val deadband: Float?, val multiThumbMode: MultiThumbMode, val direction: KmpSliderDirection, val units: String?, val label: String?, val valueFormatter: (value: Float) -> String, val ticks: List<KmpSliderTick>, val styles: KmpSliderStyle, val isEnabled: Boolean, val manualEntryState: MutableState<Boolean>?, val manualEntrySlot: KmpSliderManualEntrySlot, val thumbSlot: @Composable KmpSliderScope.(key: String) -> Unit, val labelSlot: @Composable KmpSliderScope.() -> Unit, val valueLabelSlot: @Composable KmpSliderScope.() -> Unit?, val trackDecoratorSlot: @Composable KmpSliderTrackScope.(@Composable KmpSliderTrackScope.() -> Unit) -> Unit, val logarithmic: Boolean, val onDragStart: (Map<String, Float>) -> Unit, val onDragDone: (Map<String, Float>) -> Unit, val onChange: (Map<String, Float>) -> Unit, density: Density, draggingValues: MutableState<Map<String, Float>>, draggingKey: MutableState<String?>)
Link copied to clipboard
data class KmpSliderStyle(val labelTextStyle: TextStyle = DefaultLabelStyle, val labelTextStyleDisabled: TextStyle = DefaultLabelStyle, val labelTextOverflow: TextOverflow = TextOverflow.Ellipsis, val valueLabelTextStyle: TextStyle = DefaultValueLabelStyle, val valueLabelTextStyleDisabled: TextStyle = DefaultValueLabelStyle, val valueLabelTextOverflow: TextOverflow = TextOverflow.Clip, val valueLabelBackground: Brush = SolidColor(Color(0xFFE5E7EB)), val valueLabelBackgroundDisabled: Brush = SolidColor(Color.Transparent), val valueLabelShape: Shape = RoundedCornerShape(4.dp), val trackBackground: Brush = SolidColor(Color(0xFFE5E7EB)), val trackShape: Shape = CircleShape, val trackFill: Brush = SolidColor(Color.Black), val trackFillDisabled: Brush = SolidColor(Color(0xFF969798)), val trackFillAlignment: KmpSliderAlignment = KmpSliderAlignment.Start, val trackThickness: Dp = 4.dp, val isTrackFullSize: Boolean = false, val thumbSize: DpSize = DpSize(24.dp, 24.dp), val thumbBackground: Brush = SolidColor(Color.White), val thumbBackgroundDisabled: Brush = SolidColor(Color(0xFFF6F6F6)), val thumbShape: Shape = CircleShape, val thumbShadow: KmpShadow? = KmpShadow(blur = 4.dp, color = Color.Black.copy(alpha = .15f), shape = thumbShape), val thumbShadowDisabled: KmpShadow? = null, val ticksZIndex: Float = 0.0f)
Styles for the Slider
Link copied to clipboard
data class KmpSliderTick(val value: Float, val label: String? = null, val style: KmpSliderTickStyle = KmpSliderTickStyle())
KmpSliderTick represents a visual indicator for a particular value in a slider
Link copied to clipboard
data class KmpSliderTickPosition(val offset: Dp = 0.dp, val alignment: KmpSliderAlignment = KmpSliderAlignment.End)
Link copied to clipboard
data class KmpSliderTickStyle(val shape: Shape? = RoundedCornerShape(topStart = 0.dp, topEnd = 0.dp, bottomStart = 8.dp, bottomEnd = 8.dp), val shapeSize: DpAxisSize = DpAxisSize(1.dp, 7.dp), val shapeBrush: Brush = SolidColor(Color.Black), val shapeDrawStyle: DrawStyle = Fill, val shapePosition: KmpSliderTickPosition = KmpSliderTickPosition(offset = 4.dp), val labelTextStyle: TextStyle = TextStyle(fontSize = 12.sp), val labelTextDecoration: TextDecoration? = null, val labelDrawStyle: DrawStyle? = null, val labelShadow: Shadow? = null, val labelPosition: KmpSliderTickPosition = KmpSliderTickPosition(offset = 15.dp))
The style of a slider KmpSliderTick
Link copied to clipboard
data class KmpSliderTrackScope(val sliderScope: KmpSliderScope, val ticksSize: Dp, val ticksOffset: Dp, val tickLabelMeasurements: List<TextLayoutResult?>)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
object KmpWheelPickerIndicators
Link copied to clipboard
typealias KmpWheelPickerScrollEffect = GraphicsLayerScope.(index: Int, multiplier: Float, state: KmpWheelPickerState) -> Unit
Link copied to clipboard
object KmpWheelPickerScrollEffects
Link copied to clipboard
data class KmpWheelPickerState(val initiallySelectedItemIndex: Int = 0, val isInfinite: Boolean = false) : ScrollableState
KmpWheelPickerState The state for KmpWheelPicker
Link copied to clipboard
Link copied to clipboard
Properties
Functions
Link copied to clipboard
Link copied to clipboard
fun KmpDatePickerInline(modifier: Modifier = Modifier, date: LocalDate = Clock.System.now().toLocalDateTime(currentSystemDefault()).date, minDate: LocalDate = remember { LocalDate(0, Month.JANUARY, 1) }, maxDate: LocalDate = remember { LocalDate(3000, Month.DECEMBER, 31) }, styles: KmpDatePickerStyles = rememberKmpDatePickerStyles(), isEnabled: Boolean = true, onChange: (date: LocalDate) -> Unit)
Link copied to clipboard
fun KmpDatePickerModal(isVisible: Boolean, isEnabled: Boolean = true, modifier: Modifier = Modifier, onDismissRequest: () -> Unit? = null, isFullScreen: Boolean = true, modalStyles: ModalStyles = remember { ModalStyles() }, datePickerStyles: KmpDatePickerStyles = rememberKmpDatePickerStyles(), dismissOnBackPress: Boolean = true, dismissOnExternalClick: Boolean = true, onKeyEvent: (KeyEvent) -> Boolean = { false }, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, date: LocalDate = Clock.System.now().toLocalDateTime(currentSystemDefault()).date, minDate: LocalDate = remember { LocalDate(0, Month.JANUARY, 1) }, maxDate: LocalDate = remember { LocalDate(3000, Month.DECEMBER, 31) }, onChange: (date: LocalDate) -> Unit)
Link copied to clipboard
fun KmpDatePickerPopover(isVisible: Boolean, isEnabled: Boolean = true, datePickerStyles: KmpDatePickerStyles = rememberKmpDatePickerStyles(), modifier: Modifier = Modifier
.shadow(16.dp, RoundedCornerShape(8.dp))
.background(datePickerStyles.backgroundColor)
.padding(16.dp)
.defaultMaxSize(maxWidth = DATE_PICKER_MIN_WIDTH), onDismissRequest: () -> Unit? = null, anchors: PopoverAnchors = PopoverAnchors.ExternalBottomAlignCenter, popupPositionProvider: PopupPositionProvider? = null, dismissOnBackPress: Boolean = true, onKeyEvent: (KeyEvent) -> Boolean = { false }, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, offset: DpOffset = DpOffset(0.dp, (-16f).dp), date: LocalDate = Clock.System.now().toLocalDateTime(currentSystemDefault()).date, minDate: LocalDate = remember { LocalDate(0, Month.JANUARY, 1) }, maxDate: LocalDate = remember { LocalDate(3000, Month.DECEMBER, 31) }, onChange: (date: LocalDate) -> Unit)
Link copied to clipboard
fun KmpSlider(value: Float, range: ClosedRange<Float>, step: Float = 1.0f, isEnabled: Boolean = true, ticks: List<KmpSliderTick> = emptyList(), units: String? = null, label: String? = null, valueFormatter: (value: Float) -> String = remember { { it.roundToInt().toString() } }, modifier: Modifier = Modifier, direction: KmpSliderDirection = KmpSliderDirection.Horizontal, logarithmic: Boolean = false, styles: KmpSliderStyle = remember { KmpSliderStyle() }, layoutSlot: @Composable KmpSliderScope.() -> Unit = { DefaultLayout() }, labelSlot: @Composable KmpSliderScope.() -> Unit = { Label() }, valueLabelSlot: @Composable KmpSliderScope.() -> Unit? = { ValueLabel() }, thumbSlot: @Composable KmpSliderScope.(key: String) -> Unit = { Thumb(it) }, trackDecoratorSlot: @Composable KmpSliderTrackScope.(trackFill: @Composable KmpSliderTrackScope.() -> Unit) -> Unit = { TrackDecoration { it() } }, manualEntryState: MutableState<Boolean>? = remember { mutableStateOf(false) }, manualEntrySlot: KmpSliderManualEntrySlot = { isVisible, valueString, onTextChange, onCancel, onCommit ->
ManualEntryModal(
isVisible = isVisible,
valueString = valueString,
onTextChange = onTextChange,
onCancel = onCancel,
onCommit = onCommit,
)
}, onDragStart: (Float) -> Unit = { }, onDragDone: (Float) -> Unit = { }, onChange: (Float) -> Unit)
fun KmpSlider(values: Map<String, Float>, range: ClosedRange<Float>, step: Float = 1.0f, isEnabled: Boolean = true, ticks: List<KmpSliderTick> = emptyList(), units: String? = null, label: String? = null, valueFormatter: (value: Float) -> String = remember { { it.roundToInt().toString() } }, modifier: Modifier = Modifier, direction: KmpSliderDirection = KmpSliderDirection.Horizontal, multiThumbMode: MultiThumbMode = MultiThumbMode.Range, deadband: Float? = null, logarithmic: Boolean = false, styles: KmpSliderStyle = remember { KmpSliderStyle() }, layoutSlot: @Composable KmpSliderScope.() -> Unit = { DefaultLayout() }, labelSlot: @Composable KmpSliderScope.() -> Unit = { Label() }, valueLabelSlot: @Composable KmpSliderScope.() -> Unit? = { ValueLabel() }, thumbSlot: @Composable KmpSliderScope.(key: String) -> Unit = { Thumb(it) }, trackDecoratorSlot: @Composable KmpSliderTrackScope.(trackFill: @Composable KmpSliderTrackScope.() -> Unit) -> Unit = { TrackDecoration { it() } }, manualEntryState: MutableState<Boolean>? = remember { mutableStateOf(false) }, manualEntrySlot: KmpSliderManualEntrySlot = { isVisible, valueString, onTextChange, onCancel, onCommit ->
ManualEntryModal(
isVisible = isVisible,
valueString = valueString,
onTextChange = onTextChange,
onCancel = onCancel,
onCommit = onCommit,
)
}, onDragStart: (Map<String, Float>) -> Unit = { }, onDragDone: (Map<String, Float>) -> Unit = { }, onChange: (Map<String, Float>) -> Unit)
A flexible and customizable Slider
Link copied to clipboard
fun KmpTimePickerInline(modifier: Modifier = Modifier, time: LocalTime = Clock.System.now().toLocalDateTime(currentSystemDefault()).time, minuteStep: Int = 1, styles: KmpTimePickerStyles = rememberKmpTimePickerStyles(), isEnabled: Boolean = true, onChange: (time: LocalTime) -> Unit)
Link copied to clipboard
fun KmpTimePickerModal(isVisible: Boolean, isEnabled: Boolean = true, modifier: Modifier = Modifier, onDismissRequest: () -> Unit? = null, isFullScreen: Boolean = true, modalStyles: ModalStyles = remember { ModalStyles() }, timePickerStyles: KmpTimePickerStyles = rememberKmpTimePickerStyles(), dismissOnBackPress: Boolean = true, dismissOnExternalClick: Boolean = true, onKeyEvent: (KeyEvent) -> Boolean = { false }, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, time: LocalTime = Clock.System.now().toLocalDateTime(currentSystemDefault()).time, minuteStep: Int = 1, onChange: (time: LocalTime) -> Unit)
Link copied to clipboard
fun KmpTimePickerPopover(isVisible: Boolean, isEnabled: Boolean = true, timePickerStyles: KmpTimePickerStyles = rememberKmpTimePickerStyles(), modifier: Modifier = Modifier
.shadow(16.dp, RoundedCornerShape(8.dp))
.background(timePickerStyles.backgroundColor)
.padding(16.dp)
.defaultMaxSize(maxWidth = TIME_PICKER_MIN_WIDTH), onDismissRequest: () -> Unit? = null, anchors: PopoverAnchors = PopoverAnchors.ExternalBottomAlignCenter, popupPositionProvider: PopupPositionProvider? = null, dismissOnBackPress: Boolean = true, onKeyEvent: (KeyEvent) -> Boolean = { false }, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, offset: DpOffset = DpOffset(0.dp, (-16f).dp), time: LocalTime = Clock.System.now().toLocalDateTime(currentSystemDefault()).time, minuteStep: Int = 1, onChange: (time: LocalTime) -> Unit)
Link copied to clipboard
fun <T : Any> KmpWheelPicker(selectedIndex: Int, items: List<T>, itemKey: (T, Int) -> Any = { _, index -> index }, state: KmpWheelPickerState = rememberKmpWheelPickerState(isInfinite = false, initiallySelectedItemIndex = selectedIndex), modifier: Modifier = Modifier, isEnabled: Boolean = true, onChange: (T) -> Unit, onImmediateChange: (T) -> Unit = {}, scrollEffect: KmpWheelPickerScrollEffect = remember { KmpWheelPickerScrollEffects.magnify() }, horizontalAlignment: Alignment.Horizontal = Alignment.Start, indicator: KmpWheelPickerIndicator = remember { KmpWheelPickerIndicators.window() }, content: @Composable LazyItemScope.(T) -> Unit)
KmpWheelPicker a cross-platform wheel picker.
Link copied to clipboard
Link copied to clipboard
fun KmpSliderScope.ManualEntryModal(isVisible: Boolean, valueString: String, maxWidth: Dp = 300.dp, styles: ModalStyles = ModalStyles(), onTextChange: (String) -> Unit, onCancel: () -> Unit, onCommit: () -> Unit)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun rememberKmpWheelPickerState(isInfinite: Boolean = false, initiallySelectedItemIndex: Int = 0): KmpWheelPickerState
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun KmpSliderTrackScope.TrackDecoration(modifier: Modifier = Modifier, trackFill: @Composable KmpSliderTrackScope.() -> Unit)
Link copied to clipboard
fun KmpSliderScope.ValueLabel(modifier: Modifier = Modifier, padding: PaddingValues = PaddingValues(horizontal = 8.dp, vertical = 4.dp))