in src/datepicker/calendar-header.tsx [471:541]
month: idToYearMonth(adjustedMonthId),
});
this.props.onMonthChange && this.props.onMonthChange({ date: updatedDate });
this.setState({ isMonthDropdownOpen: false });
}}
{...menuProps}
/>
)}
{...popoverProps}
>
<MonthYearSelectButton
aria-live="polite"
type="button"
$isFocusVisible={this.state.isFocusVisible}
$density={density}
// @ts-ignore
onKeyUp={(event) => {
if (this.canArrowsOpenDropdown(event)) {
this.setState({ isMonthDropdownOpen: true });
}
}}
// @ts-ignore
onKeyDown={(event) => {
if (this.canArrowsOpenDropdown(event)) {
// disables page scroll
event.preventDefault();
}
if (event.key === 'Tab') {
this.setState({ isMonthDropdownOpen: false });
}
}}
{...monthYearSelectButtonProps}
aria-label={`Month, ${monthTitle}`}
>
{monthTitle}
<MonthYearSelectIconContainer {...monthYearSelectIconContainerProps}>
<ChevronDown
title=""
overrides={{ Svg: { props: { role: 'presentation' } } }}
size={density === DENSITY.high ? 16 : 24}
/>
</MonthYearSelectIconContainer>
</MonthYearSelectButton>
</OverriddenPopover>
{/* Year Selection */}
<OverriddenPopover
placement="bottom"
focusLock={true}
isOpen={this.state.isYearDropdownOpen}
onClick={() => {
this.setState((prev) => ({
isYearDropdownOpen: !prev.isYearDropdownOpen,
}));
}}
onClickOutside={() => this.setState({ isYearDropdownOpen: false })}
onEsc={() => this.setState({ isYearDropdownOpen: false })}
content={() => (
<OverriddenStatefulMenu
initialState={{
highlightedIndex: initialYearIndex,
isFocused: true,
}}
items={this.yearItems}
// @ts-ignore
onItemSelect={({ item, event }) => {
event.preventDefault();
const year = idToYearMonth(item.id);
const updatedDate = this.dateHelpers.set(date, {