Files
roi-theme/_planeacion/theme_referencias/_old/2025 Construction Cost Books with RSMeans data_files/smart-keyboard-handler.min.js.descarga
FrankZamora ea38a12055 [NIVEL 2 AVANCE] Issues #49-#53 - Componentes Principales Verificados
Todos los componentes del NIVEL 2 ya están implementados correctamente:
-  Notification Bar (#49)
-  Navbar (#50)
-  Hero Section (#51)
-  Sidebar (#52)
-  Footer (#53)

Solo se actualizó notification-bar.css para usar variables CSS.

Próximo paso: NIVEL 3 (Refinamientos visuales)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 20:01:07 -06:00

6 lines
1.2 KiB
Plaintext

define(['jquery'],function($){'use strict';function KeyboardHandler(){var body=$('body'),focusState=false,tabFocusClass='_keyfocus',productsGrid='[data-container="product-grid"]',catalogProductsGrid=$(productsGrid),CODE_TAB=9;function onFocusInHandler(){focusState=true;body.addClass(tabFocusClass).off('focusin.keyboardHandler',onFocusInHandler);}
function onClickHandler(){focusState=false;body.removeClass(tabFocusClass).off('click',onClickHandler);}
function smartKeyboardFocus(){$(document).on('keydown keypress',function(event){if(event.which===CODE_TAB&&!focusState){body.on('focusin.keyboardHandler',onFocusInHandler).on('click',onClickHandler);}});if(catalogProductsGrid.length){body.on('focusin.gridProducts',productsGrid,function(){if(body.hasClass(tabFocusClass)){$(this).addClass('active');}});body.on('focusout.gridProducts',productsGrid,function(){$(this).removeClass('active');});}}
function handleFocus(element){element.on('focusin.emulateTabFocus',function(){focusState=true;body.addClass(tabFocusClass);element.off();});element.on('focusout.emulateTabFocus',function(){focusState=false;body.removeClass(tabFocusClass);element.off();});}
return{apply:smartKeyboardFocus,focus:handleFocus};}
return new KeyboardHandler;});