Calendar.CalendarSlots# const · packages/mixins-ui/src/calendar.ts:27
const CalendarSlots: Slots . Contract <{ readonly root: Slot . UnnamedSlot < Capability . Capability < "Container" , readonly [Capability . Capability < "Interactive" , readonly [Capability . Capability < "Base" , readonly []> ]> ]>, readonly Slot . EventName [], readonly Slot . AttributeName [], readonly Slot . RequirementName [], boolean >; readonly header: Slot . UnnamedSlot < Capability . Capability < "Container" , readonly [Capability . Capability < "Interactive" , readonly [Capability . Capability < "Base" , readonly []> ]> ]>, readonly Slot . EventName [], readonly Slot . AttributeName [], readonly Slot . RequirementName [], boolean >; readonly previousMonthButton: Slot . UnnamedSlot < Capability . Capability < "Interactive" , readonly [Capability . Capability < "Base" , readonly []> ]>, readonly [Event . EventToken < "click" > ], readonly [Attr . AttrToken < "role" >, Attr . AttrToken < "disabled" >, Attr . AttrToken < "aria-disabled" > ], readonly Slot . RequirementName [], boolean >; readonly nextMonthButton: Slot . UnnamedSlot < Capability . Capability < "Interactive" , readonly [Capability . Capability < "Base" , readonly []> ]>, readonly [Event . EventToken < "click" > ], readonly [Attr . AttrToken < "role" >, Attr . AttrToken < "disabled" >, Attr . AttrToken < "aria-disabled" > ], readonly Slot . RequirementName [], boolean >; readonly headingButton: Slot . UnnamedSlot < Capability . Capability < "Interactive" , readonly [Capability . Capability < "Base" , readonly []> ]>, readonly [Event . EventToken < "click" > ], readonly [Attr . AttrToken < "role" > ], readonly Slot . RequirementName [], boolean >; readonly previousPageButton: Slot . UnnamedSlot < Capabilit …;Calendar is a nested Submodel whose shape depends on model.viewMode. The
top-level groups (root, grid, the navigation buttons) and per-item groups
(columnHeaders[], weeks[].attributes, the day/month/year cells and their
buttons) are each resolved with SlotView.buildersFor , so a contribution to
a cell slot applies to every cell while each cell's base keeps its own event
ownership (a disabled day omits OnClick). header, the row of the
heading and its paging buttons, has no upstream bundle: it is this package's,
so the default drawing puts no markup outside a slot.
Calendar.draw# function · packages/mixins-ui/src/calendar.ts:207
function draw < Message >(
calendar: ResolvedCalendar < Message >,
h: HtmlBuilder < Message >,
) : Html The month grid in every mode, as upstream lays it out, with a header row of its own.
Calendar.resolve# function · packages/mixins-ui/src/calendar.ts:139
function resolve < Input , Message >(
render: CalendarAttributes ,
mixins: MixinList < Message >,
context: ResolveContext < Input , Message >,
) : ResolvedCalendar < Message > Resolves every mode's nested groups, preserving the _tag and heading data.
Calendar.ResolvedCalendar# type · packages/mixins-ui/src/calendar.ts:135
type ResolvedCalendar < Message > =
ResolvedDays < Message > | ResolvedMonths < Message > | ResolvedYears < Message > Calendar.ResolvedColumnHeader# type · packages/mixins-ui/src/calendar.ts:83
type ResolvedColumnHeader < Message > = Omit < ColumnHeader , 'attributes' > & {
readonly attributes: SlotAttributes < Message >
} Calendar.ResolvedDayCell# type · packages/mixins-ui/src/calendar.ts:86
type ResolvedDayCell < Message > = Omit <
DayCell ,
'cellAttributes' | 'buttonAttributes'
> & {
readonly cellAttributes: SlotAttributes < Message >
readonly buttonAttributes: SlotAttributes < Message >
} Calendar.ResolvedDays# interface · packages/mixins-ui/src/calendar.ts:103
interface ResolvedDays < Message > {
readonly _tag: 'Days'
readonly root: SlotAttributes < Message >
readonly header: SlotAttributes < Message >
readonly previousMonthButton: SlotAttributes < Message >
readonly nextMonthButton: SlotAttributes < Message >
readonly headingButton: SlotAttributes < Message >
readonly heading: DaysModeAttributes ['heading' ]
readonly grid: SlotAttributes < Message >
readonly headerRow: SlotAttributes < Message >
readonly columnHeaders: ReadonlyArray < ResolvedColumnHeader < Message >>
readonly weeks: ReadonlyArray < ResolvedWeek < Message >>
} Calendar.ResolvedMonthCell# type · packages/mixins-ui/src/calendar.ts:94
type ResolvedMonthCell < Message > = Omit <
MonthCell ,
'cellAttributes' | 'buttonAttributes'
> & {
readonly cellAttributes: SlotAttributes < Message >
readonly buttonAttributes: SlotAttributes < Message >
} Calendar.ResolvedMonths# interface · packages/mixins-ui/src/calendar.ts:116
interface ResolvedMonths < Message > {
readonly _tag: 'Months'
readonly root: SlotAttributes < Message >
readonly header: SlotAttributes < Message >
readonly headingButton: SlotAttributes < Message >
readonly heading: MonthsModeAttributes ['heading' ]
readonly grid: SlotAttributes < Message >
readonly cells: ReadonlyArray < ResolvedMonthCell < Message >>
} Calendar.ResolvedWeek# type · packages/mixins-ui/src/calendar.ts:90
type ResolvedWeek < Message > = Omit < Week , 'attributes' | 'cells' > & {
readonly attributes: SlotAttributes < Message >
readonly cells: ReadonlyArray < ResolvedDayCell < Message >>
} Calendar.ResolvedYearCell# type · packages/mixins-ui/src/calendar.ts:98
type ResolvedYearCell < Message > = Omit <
YearCell ,
'cellAttributes' | 'buttonAttributes'
> & {
readonly cellAttributes: SlotAttributes < Message >
readonly buttonAttributes: SlotAttributes < Message >
} Calendar.ResolvedYears# interface · packages/mixins-ui/src/calendar.ts:125
interface ResolvedYears < Message > {
readonly _tag: 'Years'
readonly root: SlotAttributes < Message >
readonly header: SlotAttributes < Message >
readonly previousPageButton: SlotAttributes < Message >
readonly nextPageButton: SlotAttributes < Message >
readonly heading: YearsModeAttributes ['heading' ]
readonly grid: SlotAttributes < Message >
readonly cells: ReadonlyArray < ResolvedYearCell < Message >>
} Calendar.toView# function · packages/mixins-ui/src/calendar.ts:262
function toView < Message >(
mixins: MixinList < Message >,
context: ResolveContext < unknown , Message >,
render ?: ( resolved: ResolvedCalendar < Message >) => Html ,
) : ( attributes: CalendarAttributes ) => Html The calendar's toView: draw receives its bundles with mixins applied;
without one, they are drawn by draw above. A Mixin that reads the mode
needs resolve, whose input can be _tag.