NepaliDateTextField
Standalone outlined text field that edits a Nepali (Bikram Sambat) SimpleDate.
The field accepts both Latin (2082/02/14) and Devanagari (२०८२/०२/१४) digit input regardless of locale; output digit script always follows NepaliDateLocale.resolvedDigitScript. Users type digits only - separators are inserted by a VisualTransformation, so the underlying state holds 8 ASCII digits.
Validation pipeline (runs on every keystroke):
Length < 8 digits → emit
null, isError stays as the caller passed it.Length == 8 → parse with dev.shivathapaa.nepalidatepickerkmp.data.NepaliDateFormatter. Parse failure → emit
nullwith a non-empty error surfaced to the caller via the supplied isError.Year outside yearRange → emit
null, error surfaced.selectableDates.isSelectableYearorisSelectableDaterejects → emitnull, error surfaced.All checks pass → emit the SimpleDate; no error.
The composable does NOT paint its own error indicator - pass isError to control the field's error state; consult the onValueChange callback for the resolved SimpleDate?. When the caller wants to display per-rule error messages, wire supportingText yourself based on the surface API exposed by your form layer.
Parameters
externally-controlled selection. null means "no date".
invoked on every keystroke with the parsed-and-validated SimpleDate?. null indicates "input is incomplete or invalid".
input/display pattern. See Pattern for the supported set.
BS year range the field will accept. Out-of-range parses emit null.
predicate that further restricts which dates the field accepts.
localization for output digits + label conventions. Digit script in locale only affects display - input is always tolerant of both Latin and Devanagari.
the TextStyle applied to the input text.
optional content shown before the input, inside the field.
optional content shown after the input, inside the field.
the Shape of the field's outline.
the MutableInteractionSource for observing interactions, or null to create one.
See also
for a combo that pairs this field with a picker dialog.