UnreviewedOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptional UnreviewedkeyReact/Preact reconciliation key when rendered inside a list.
Optional UnreviewedidHTML id attribute.
Optional UnreviewedclassHTML class attribute (standard DOM).
Optional UnreviewedclassReact/Preact-style class name. Alias for class.
Optional UnreviewedstyleInline styles applied to the element.
OptionalchildrenOptional UnreviewedslotAssigns the element to a named <slot> (e.g. slot="title").
Optional UnreviewedtabTab order. Set to 0 to make the element keyboard-focusable.
Optional UnreviewedroleARIA role override.
Optional UnreviewedvalueControlled selected date — ISO YYYY-MM-DD. Present → controlled (a pick
only requests a change). Mirrored to the owning form via ElementInternals.
Optional UnrevieweddefaultvalueUncontrolled initial date / reset baseline — ISO YYYY-MM-DD.
Optional UnreviewednameForm field name — the selected ISO date submits under this key.
Optional UnrevieweddisabledDisable the whole calendar. Presence-based ('' on, omit off).
Optional Unrevieweddata-Focus signal — "<iso>#<nonce>". When it changes, the element focuses the
day cell whose data-date matches <iso> (set by the renderer after a
month-changing keyboard move).
Optional UnreviewedonstatechangeCancelable, bubbling statechange fired BEFORE a pick applies. detail is
{ next, prev, reason } — ISO strings (or null); reason ∈
'user' | 'reset' | 'restore'. preventDefault() vetoes a 'user' pick in
uncontrolled mode.
Optional UnreviewedonchangeNative change, fired AFTER a selection applies (uncontrolled) and on
reset/restore.
Optional UnreviewedonnavigateKeyboard navigation request — the element handles arrow / Home / End /
PageUp / PageDown, focuses the target cell when it's rendered, and emits this
bubbling navigate CustomEvent (detail: { date }, ISO) so the renderer can
move the roving tab stop and flip the displayed month when needed.
Optional Unreviewedaria-ARIA — role="group" and the accessible name are set by the renderer (the
Calendar wrapper wires aria-labelledby to the month heading).
Optionalaria-
Attributes for the
<a-calendar>custom element — a light-DOM, form-associated month grid, and the interaction authority for it. The element is the grid (a flat 7-column CSS grid whose children are the weekday headers + day cells), owns the submitted form value, and dispatches the selection (statechange/change) and navigation (navigate) events plus manages keyboard focus — so it works for a vanilla consumer, not only via the wrapper. It does not build or mutate its own contents: whoever renders into it (theCalendarJSX wrapper, or a vanilla consumer using the exportedbuildMonthengine) fills it with day cells and re-renders on its events — the<a-radio-group>model. Controlled by the presence ofvalue(a pick only requests a change); uncontrolled withdefaultvalue(a pick self-applies). For the typed, batteries-included wrapper useCalendarfrom@antadesign/anta.:state(filled)is the styling hook for "has a selection".