Package-level declarations
Dates: JengaDatePicker (optionally limited to a dateRange, with a year grid behind the title), JengaDatePickerDialog, and JengaCalendar, a paging month grid whose day cells are your own content.
Types
Resolved colors for calendar day cells and the date picker. Override via JengaCalendarDefaults.colors.
One cell of a JengaCalendar: a date and where it falls relative to the shown month.
Where a JengaCalendarDay falls relative to the month being shown.
Defaults, token mappings and reusable cells for JengaCalendar and JengaDatePicker.
The scroll state of a JengaCalendar: which months it can show and which one is visible. Create one with rememberJengaCalendarState.
Functions
A month calendar that pages horizontally between the months of state. Every part is a slot: dayContent draws each cell of the six-week grid, including the days of the neighbouring months (check JengaCalendarDay.position), and monthHeader and weekHeader sit above each month's grid. Selection and styling are the caller's; JengaDatePicker is a ready-made single-date picker built on it, and JengaCalendarDefaults.Day is a cell you can reuse.
A single-date picker: a month title with previous/next buttons above a paging JengaCalendar. Every visible string comes from the caller (monthTitle, dayOfWeekLabel and the button descriptions), so it follows the app's locale.
A modal dialog holding a JengaDatePicker with confirm and dismiss actions. The confirm action is enabled once a date is picked.
Remembers a JengaCalendarState.