Date Picker
The date picker is an input field that allows you to select dates through textual input or interaction with a calendar options overlay.
| Type | Resource | 
|---|---|
| Design | Figma | 
| Mobile | Web Storybook | 
| Code | Gitlab | 

Usage
import id.co.biofarma.binduiandroid.components.datepicker.*    var selectedDate by remember(config.initialDate) {
        mutableStateOf(config.initialDate)
      }
 
      DateInput(
          label = "Configured Date Picker",
          value = selectedDate,
          variant = TextInputVariant.OUTLINE,
          dateFormat = "dd-MM-yyyy",
          placeholder = "Select date",
          disabled = false,
          isRequired = true,
          iconPosition = IconPosition.END,
          onDateSelected = { date -> selectedDate = date },
          datePickerParams = DatePickerParams(
              confirmButtonText = "OK",
              dismissButtonText = "Cancel",
              selectableDates = when (config.dateFilter) {
                  "past" -> PresentPastSelectableDates()
                  "future" -> FutureSelectableDates()
                  "custom" -> ConfigurableSelectableDates(
                      minDate = LocalDate.now().minusDays(7),
                      maxDate = LocalDate.now().plusDays(7)
                  )
                  else -> DatePickerDefaults.AllDates
              },
          shape = config.radius?.let { RoundedCornerShape(it) } ?: RectangleShape
          )
      )Examples
selectableDates
Use selectableDates to determine allowed date range.

DateRangeInput
Use DateRangeInput to select date range.

dateFormat
Use dateFormat to determine date formatting.

Props
| Props | Required | Default | Type | Description | 
|---|---|---|---|---|
| id | false | - | String | Unique identifier for date picker | 
| variant | false | TextInputVariant.OUTLINE | TextInputVariant | Set variant of input | 
| label | false | - | String | Set input label of date picker | 
| value | false | - | LocalDate? | Used to bind value of selected date | 
| placeholder | false | - | String | Set placeholer of input | 
| helperText | false | - | String | Set helper text of input | 
| errorText | false | - | String | Bind when date input error | 
| disabled | false | false | Boolean | Toggle for enabling input | 
| isError | false | false | Boolean | true when input is error | 
| isRequired | false | false | Boolean | Determine if input is required | 
| prefixAddsOn | false | - | String | Allows the addition of a prefix (like a currency symbol or an icon) at the beginning of the input field. | 
| suffixAddsOn | false | null | @Composable (() -> Unit)? | Allows the addition of a suffix (like a unit or a button) at the end of the input field. | 
| dateFormat | false | dd/MM/yyyy | String | Deterimine date formatting of input value | 
| size | false | ComponentSize.MD | ComponentSize | Set size of input component | 
| radius | false | ComponentRadius.MD | ComponentRadius | Set corner of input component | 
| radius | false | ComponentRadius.MD | ComponentRadius | Set corner of input component | 
| mode | false | ThemeMode.LIGHT | ThemeMode | Set theme to dark or light | 
| style | false | Modifier | Modifier | Change style of component using modifier | 
| datePickerParams | false | DatePickerParams() | DatePickerParams | Set date picker params | 
| icon | false | { DefaultCalendarIcon(disabled = disabled) } | @Composable (() -> Unit)? | Set icon of date picker | 
| iconPosition | false | IconPosition.END | IconPosition | Set icon position of date picker | 
| onDateSelected | true | - | (LocalDate?) -> Unit | Callback when user selected date |