NepaliMonthEventList
Everything named in the month a NepaliCalendar is showing, written out in date order.
A festival that runs ten days is one line rather than ten: entries sharing an NepaliCalendarEvent.id over consecutive days are gathered into a single row carrying the range they cover. Entries without an id stay one row per day, since nothing says those days are the same thing.
Follows state, so the list changes as the calendar is paged, and the rows covering the picked day are highlighted, which is what ties the list to the grid without either one driving the other. Renders as a plain column that wraps its content, so it sits inside a screen's own scrolling container beside the calendar rather than scrolling on its own.
Parameters
the calendar this list follows. Share the one the grid uses.
the Modifier applied to the list.
the institution whose events are listed. Give the grid the same one, or the two will disagree about what is on a day.
the NepaliDatePickerColors the list themes itself from; the picked day's rows take the in-range colours, the quieter half of the selection palette.
the palette a row's dot is drawn in, one slot per kind of event.
invoked with the event a tapped row speaks for, which for a span is its first entry in the month. Its NepaliCalendarEvent.id and NepaliCalendarEvent.payload are what an app correlates back to its own record. null leaves rows untappable.
what to draw for a month with nothing named. Defaults to a single quiet line.
Example usage:
val state = rememberNepaliCalendarState()
val policy = remember { NepaliCalendarPolicy(provider = myEvents) }
NepaliCalendar(state = state, policy = policy)
NepaliMonthEventList(
state = state,
policy = policy,
onEventClick = { event -> openDetail(event.id) }
)