docs: public static UIComponent firstWithId(String id, UIComponent base) {
          if (id.equals(base.getId())) {
              return base;
          }
  
          UIComponent result = null;
  
          Iterator<UIComponent> kids = base.getFacetsAndChildren();
          while (kids.hasNext() && (result == null)) {
              UIComponent kid = kids.next();
              if (id.equals(kid.getId())) {
                  result = kid;
                  break;
              }
              result = firstWithId(id, kid);
              if (result != null) {
                  break;
              }
          }
          return result;
      }