@@ -57,6 +57,10 @@ import {
5757 CALENDAR_HEADER_MONTH_NEXT_BUTTON_SHORTCUT ,
5858 CALENDAR_HEADER_MONTH_PREVIOUS_BUTTON_TITLE ,
5959 CALENDAR_HEADER_MONTH_PREVIOUS_BUTTON_SHORTCUT ,
60+ CALENDAR_HEADER_YEAR_NEXT_BUTTON_TITLE ,
61+ CALENDAR_HEADER_YEAR_PREVIOUS_BUTTON_TITLE ,
62+ CALENDAR_HEADER_YEAR_RANGE_NEXT_BUTTON_TITLE ,
63+ CALENDAR_HEADER_YEAR_RANGE_PREVIOUS_BUTTON_TITLE ,
6064} from "./generated/i18n/i18n-defaults.js" ;
6165import type { YearRangePickerChangeEventDetail } from "./YearRangePicker.js" ;
6266
@@ -307,6 +311,9 @@ class Calendar extends CalendarPart {
307311 @property ( { noAttribute : true } )
308312 _pickersMode : `${CalendarPickersMode } ` = "DAY_MONTH_YEAR" ;
309313
314+ @property ( { type : Boolean , noAttribute : true } )
315+ _isOpenedFromPopover ?: boolean = false ;
316+
310317 _valueIsProcessed = false ;
311318
312319 _rangeStartYear ?: number ;
@@ -842,8 +849,16 @@ class Calendar extends CalendarPart {
842849 const monthLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_MONTH_BUTTON , headerMonthButtonText ) ;
843850 const yearLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_YEAR_BUTTON , this . _headerYearButtonText as string ) ;
844851 const yearRangeLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_YEAR_RANGE_BUTTON , rangeStartText , rangeEndText ) ;
845- const nextBtnLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_MONTH_NEXT_BUTTON_TITLE ) ;
846- const prevBtnLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_MONTH_PREVIOUS_BUTTON_TITLE ) ;
852+ let nextBtnLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_MONTH_NEXT_BUTTON_TITLE ) ;
853+ let prevBtnLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_MONTH_PREVIOUS_BUTTON_TITLE ) ;
854+
855+ if ( this . _currentPicker === "month" ) {
856+ nextBtnLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_YEAR_NEXT_BUTTON_TITLE ) ;
857+ prevBtnLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_YEAR_PREVIOUS_BUTTON_TITLE ) ;
858+ } else if ( this . _currentPicker === "year" ) {
859+ nextBtnLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_YEAR_RANGE_NEXT_BUTTON_TITLE ) ;
860+ prevBtnLabel = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_YEAR_RANGE_PREVIOUS_BUTTON_TITLE ) ;
861+ }
847862
848863 // Get shortcuts
849864 const monthShortcut = Calendar . i18nBundle ?. getText ( CALENDAR_HEADER_MONTH_BUTTON_SHORTCUT ) ;
@@ -856,11 +871,15 @@ class Calendar extends CalendarPart {
856871 ariaLabelMonthButton : monthLabel ,
857872 ariaLabelYearButton : yearLabel ,
858873 ariaLabelYearRangeButton : yearRangeLabel ,
874+ ariaLabelNextButton : nextBtnLabel ,
875+ ariaLabelPrevButton : prevBtnLabel ,
859876
860877 // Keyboard shortcuts for aria-keyshortcuts
861878 keyShortcutMonthButton : monthShortcut ,
862879 keyShortcutYearButton : yearShortcut ,
863880 keyShortcutYearRangeButton : yearRangeShortcut ,
881+ keyShortcutNextButton : nextBtnShortcut ,
882+ keyShortcutPrevButton : prevBtnShortcut ,
864883
865884 // Tooltips combining label and shortcut
866885 tooltipMonthButton : `${ monthLabel } (${ monthShortcut } )` ,
0 commit comments