@@ -904,6 +904,17 @@ describe('MatTimepicker', () => {
904904 fixture . detectChanges ( ) ;
905905 expect ( input . hasAttribute ( 'aria-activedescendant' ) ) . toBe ( false ) ;
906906 } ) ;
907+
908+ it ( 'should be able to set classes on the panel' , ( ) => {
909+ const fixture = TestBed . createComponent ( StandaloneTimepicker ) ;
910+ fixture . componentInstance . panelClass . set ( [ 'foo' , 'bar' ] ) ;
911+ fixture . detectChanges ( ) ;
912+ getInput ( fixture ) . click ( ) ;
913+ fixture . detectChanges ( ) ;
914+ const classList = fixture . nativeElement . querySelector ( '.cdk-overlay-pane' ) . classList ;
915+ expect ( classList ) . toContain ( 'foo' ) ;
916+ expect ( classList ) . toContain ( 'bar' ) ;
917+ } ) ;
907918 } ) ;
908919
909920 describe ( 'forms integration' , ( ) => {
@@ -1415,7 +1426,8 @@ describe('MatTimepicker', () => {
14151426 [interval]="interval()"
14161427 [options]="customOptions()"
14171428 [aria-label]="ariaLabel()"
1418- [aria-labelledby]="ariaLabelledby()"/>
1429+ [aria-labelledby]="ariaLabelledby()"
1430+ [panelClass]="panelClass()"/>
14191431 <mat-timepicker-toggle
14201432 [for]="picker"
14211433 [aria-label]="toggleAriaLabel()"
@@ -1439,6 +1451,7 @@ class StandaloneTimepicker {
14391451 readonly toggleTabIndex = signal < number > ( 0 ) ;
14401452 readonly customOptions = signal < MatTimepickerOption < Date > [ ] | null > ( null ) ;
14411453 readonly openOnClick = signal ( true ) ;
1454+ readonly panelClass = signal < string [ ] > ( [ ] ) ;
14421455 readonly openedSpy = jasmine . createSpy ( 'opened' ) ;
14431456 readonly closedSpy = jasmine . createSpy ( 'closed' ) ;
14441457 readonly selectedSpy = jasmine . createSpy ( 'selected' ) ;
0 commit comments