@@ -8,16 +8,40 @@ const checkForNoResults = function () {
88 document . querySelector ( '.no-results' ) . style . display = nothingFound ? 'flex' : 'none' ;
99} ;
1010
11- $ ( 'nav a ') . on ( 'click ', event => {
12- event . preventDefault ( ) ;
11+ document . querySelector ( '[role="tablist"] ') . addEventListener ( 'keydown ', ( /** @type { KeyboardEvent } */ event ) => {
12+ if ( event . target . getAttribute ( 'role' ) !== 'tab' ) return ;
1313
14- $ ( 'nav .selected' ) . removeClass ( 'selected' ) ;
15- $ ( event . currentTarget ) . addClass ( 'selected' ) ;
14+ switch ( event . key ) {
15+ case 'ArrowLeft' :
16+ event . target . previousElementSibling ?. focus ( ) ;
17+ event . target . previousElementSibling ?. click ( ) ;
18+ break ;
19+ case 'ArrowRight' :
20+ event . target . nextElementSibling ?. focus ( ) ;
21+ event . target . nextElementSibling ?. click ( ) ;
22+ break ;
23+ default :
24+ return ;
25+ }
1626
17- $ ( 'section.open' ) . removeClass ( 'open' ) ;
18- $ ( `section${ event . currentTarget . getAttribute ( 'href' ) } ` ) . addClass ( 'open' ) ;
27+ event . stopPropagation ( ) ;
1928} ) ;
2029
30+ [ ...document . querySelectorAll ( '[role="tab"]' ) ] . forEach ( tab =>
31+ tab . addEventListener ( 'click' , ( { currentTarget } ) => {
32+ const targetPanelId = currentTarget . getAttribute ( 'aria-controls' ) ;
33+ const tabList = currentTarget . closest ( '[role="tablist"]' ) ;
34+ const tabListChildren = Array . from ( tabList . children ) ;
35+ const tabListPanelIds = tabListChildren . map ( tab => tab . getAttribute ( 'aria-controls' ) ) ;
36+
37+ tabListChildren . forEach ( tab => {
38+ tab . setAttribute ( 'aria-selected' , tab === currentTarget ? 'true' : 'false' ) ;
39+ tab . setAttribute ( 'tabindex' , tab === currentTarget ? '0' : '-1' ) ;
40+ } ) ;
41+ tabListPanelIds . forEach ( panelId => document . getElementById ( panelId ) ?. toggleAttribute ( 'hidden' , targetPanelId !== panelId ) ) ;
42+ } ) ,
43+ ) ;
44+
2145document . getElementById ( 'search' ) . addEventListener ( 'input' , ( { currentTarget } ) => {
2246 const query = currentTarget . value . toLowerCase ( ) ;
2347 const featureElements = [ ...document . querySelectorAll ( 'xkit-feature' ) ] ;
0 commit comments