OrreryDateTimePickerDialog

fun OrreryDateTimePickerDialog(onDismissRequest: () -> Unit, confirmButton: @Composable () -> Unit, state: OrreryDateTimePickerState = rememberOrreryDateTimePickerState(), modifier: Modifier = Modifier, dismissButton: @Composable () -> Unit? = null, colors: CalendarDayColors = CalendarDefaults.dayColors(), shapes: CalendarDayShapes = CalendarDefaults.dayShapes(), today: LocalDate = currentDate(), strings: DateTimePickerStrings = DatePickerDefaults.dateTimeStrings(), dateStrings: DatePickerStrings = DatePickerDefaults.strings())

Material-3-shaped dialog that picks a date, then a time of day, in one surface: the Date step is the OrreryDatePickerDialog body (calendar or text input); Next opens the Time step, a Material 3 TimePicker dial with a toggle to TimeInput. The headline shows both parts, with the active step's part on a secondaryContainer pill; tap either to jump to its step. Steps slide and fade into each other, and on short windows the body scrolls so the button row stays visible. Read state.selectedDateTime in confirmButton, which shows on the Time step. dateStrings localizes the date step.