docs: function ModalNavigationHandler(element, loop) {
      // ---------------------------------------------- input arguments processing
  
      if (loop == null) {
          loop = false;
      }
      loop = !!loop;
  
      // -------------------------------------------------------------- processing
  
      // -------------------------------------------------------------------------
  
      var oncatch = function(arg) {
          var navigationInformation = arg.navigationInformation;
          var direction = navigationInformation.direction;
          var origin = navigationInformation.origin;
  
          var reverse = (direction === 'forward' && origin === 'popup') || (direction === 'backward' && origin === 'browser');
          if (loop) {
              reverse = !reverse;
          }
          ariaTemplatesNavigationManager.focusFirst(element, reverse);
      };
  
      // -------------------------------------------------------------------------
  
      var elementInterceptor = ModalNavigationInterceptor({
          getReferenceElement: function() {return element;}
      });
  
      var viewportInterceptor = ViewportNavigationInterceptor();
  
      // ------------------------------------------------------------------ return
  
      return CompositeInterceptor([
          elementInterceptor,
          viewportInterceptor
      ], {
          oncatch: oncatch
      });
  }