@NotNull
  public static Map<RadComponent, List<RadComponent>> groupSiblings(@NotNull List<? extends RadComponent> components) {
    Map<RadComponent, List<RadComponent>> siblingLists = new HashMap<>();

    if (components.isEmpty()) {
      return siblingLists;
    }
    if (components.size() == 1) {
      RadComponent component = components.get(0);
      siblingLists.put(component.getParent(), Collections.singletonList(component));
      return siblingLists;
    }

    for (RadComponent component : components) {
      RadComponent parent = component.getParent();
      List<RadComponent> children = siblingLists.get(parent);
      if (children == null) {
        children = new ArrayList<>();
        siblingLists.put(parent, children);
      }
      children.add(component);
    }

    return siblingLists;
  }
@NotNull
  public static Map<RadComponent, List<RadComponent>> groupSiblings(@NotNull List<? extends RadComponent> components)