code: def max_layout_dimensions(dimensions: list[Dimension]) -> Dimension:
      """
      Take the maximum of a list of :class:`.Dimension` instances.
      Used when we have a HSplit/VSplit, and we want to get the best width/height.)
      """
      if not len(dimensions):
          return Dimension.zero()
  
      # If all dimensions are size zero. Return zero.
      # (This is important for HSplit/VSplit, to report the right values to their
      # parent when all children are invisible.)
      if all(d.is_zero() for d in dimensions):
          return dimensions[0]
  
      # Ignore empty dimensions. (They should not reduce the size of others.)
      dimensions = [d for d in dimensions if not d.is_zero()]
  
      if dimensions:
          # Take the highest minimum dimension.
          min_ = max(d.min for d in dimensions)
  
          # For the maximum, we would prefer not to go larger than then smallest
          # 'max' value, unless other dimensions have a bigger preferred value.
          # This seems to work best:
          #  - We don't want that a widget with a small height in a VSplit would
          #    shrink other widgets in the split.
          # If it doesn't work well enough, then it's up to the UI designer to
          # explicitly pass dimensions.
          max_ = min(d.max for d in dimensions)
          max_ = max(max_, max(d.preferred for d in dimensions))
  
          # Make sure that min>=max. In some scenarios, when certain min..max
          # ranges don't have any overlap, we can end up in such an impossible
          # situation. In that case, give priority to the max value.
          # E.g. taking (1..5) and (8..9) would return (8..5). Instead take (8..8).
          if min_ > max_:
              max_ = min_
  
          preferred = max(d.preferred for d in dimensions)
  
          return Dimension(min=min_, max=max_, preferred=preferred)
      else:
          return Dimension()
  
file_path: catboost/contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/dimension.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Any, Callable, Union
label_desc: Use image node_id 2 for calling a global function with example usage: max_layout_dimensions(dimensions) and returns: Dimension, dimensions, Dimension, Dimension