Skip to content

Calendar

<ax-calendar> is an inline date calendar supporting single, range, and multiple selection, with min/max bounds, custom disabled-date predicates, and full keyboard navigation. It’s a Pro component and self-gates with a PRO watermark until a valid license is provided.

import {
AxCalendarComponent,
type CalendarMode,
type CalendarValue,
type DateRange,
type WeekDay,
} from '@axisui-ng/forms';
<ax-calendar [(value)]="date" mode="single" [min]="today" />
<!-- range selection, week starts Monday -->
<ax-calendar [(value)]="range" mode="range" [weekStartsOn]="1" />
date: CalendarValue = null; // Date when mode="single"
range: CalendarValue = { start: null, end: null }; // DateRange when mode="range"
InputTypeDefaultNotes
valuemodel<CalendarValue>nullDate (single), DateRange { start, end } (range), or Date[] (multiple).
modeCalendarMode ('single' | 'range' | 'multiple')'single'Selection behaviour.
minDate | nullnullInclusive lower bound.
maxDate | nullnullInclusive upper bound.
disabledDates((d: Date) => boolean) | nullnullExtra per-day disable predicate.
weekStartsOnWeekDay (0–6)0First weekday (0 = Sunday).
localestring | undefinedundefinedBCP-47 locale for month/day names (browser default when unset).

A role="grid" of day cells with a roving tabindex: arrows move by day, PageUp / PageDown by month, Home / End to row ends, Enter / Space select. Disabled days are skipped. Previous/next month buttons are labelled.

Pro component — see ProWatermark for how the watermark/gating works.

Interactive examples live in Storybook under Pro / Calendar. Run pnpm storybook to explore them.