NepaliDateRangeField

fun NepaliDateRangeField(startValue: SimpleDate?, endValue: SimpleDate?, onRangeChange: (start: SimpleDate?, end: SimpleDate?) -> Unit, modifier: Modifier = Modifier, dateFormat: NepaliDateFormatter.Pattern = Pattern.YYYY_SLASH_MM_SLASH_DD, yearRange: IntRange = NepaliCalendarDefaults.NepaliYearRange, selectableDates: NepaliSelectableDates = NepaliDatePickerDefaults.AllDates, locale: NepaliDateLocale = NepaliDatePickerDefaults.DefaultRangePickerLocale, startLabel: @Composable () -> Unit? = { Text(locale.language.startDate) }, endLabel: @Composable () -> Unit? = { Text(locale.language.endDate) }, supportingText: @Composable () -> Unit? = null, isStartError: Boolean = false, isEndError: Boolean = false, enabled: Boolean = true, readOnly: Boolean = false, keyboardOptions: KeyboardOptions = KeyboardOptions( autoCorrectEnabled = false, keyboardType = KeyboardType.Number, imeAction = ImeAction.Next ), keyboardActions: KeyboardActions = KeyboardActions.Default, colors: TextFieldColors = OutlinedTextFieldDefaults.colors(), textStyle: TextStyle = LocalTextStyle.current, shape: Shape = OutlinedTextFieldDefaults.shape, startPrefix: @Composable () -> Unit? = null, endPrefix: @Composable () -> Unit? = null, startSuffix: @Composable () -> Unit? = null, endSuffix: @Composable () -> Unit? = null, startInteractionSource: MutableInteractionSource? = null, endInteractionSource: MutableInteractionSource? = null, dialogProperties: DialogProperties = DialogProperties(), confirmButtonText: String = locale.language.okText, dismissButtonText: String = locale.language.cancelText, calendarSystem: CalendarSystem = CalendarSystem.BIKRAM_SAMBAT, showCalendarSystemToggle: Boolean = false, showAdjacentMonthDays: Boolean = false, dayDecorator: NepaliDayDecorator? = null)(source)

Material3-style range field - NepaliDateRangeTextField with a trailing calendar icon that opens NepaliDatePickerDialog hosting NepaliDateRangePicker.

Same params as NepaliDateRangeTextField plus dialog properties. Dialog respects the same yearRange, selectableDates, and locale so the two surfaces stay in sync. Confirming in the dialog fires onRangeChange once with the picked range. Dismiss does not change either value.

calendarSystem sets the calendar both the fields and the dialog open in, and showCalendarSystemToggle lets the user change it from inside the dialog. showAdjacentMonthDays fills the dialog grid's empty cells with the neighbouring months' days, and dayDecorator marks the days that carry an event.