
    2i                         d dl mZmZmZ ddlmZ ddlmZmZm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZ ddlmZ ed	   Z G d
 d      Zy)    )LiteralOptionalTuple   )	loop_last)ConsoleConsoleOptionsRenderableTypeRenderResult)Control)ControlTypeSegment)	StyleType)Text)cropellipsisvisiblec            	           e Zd ZdZ	 	 ddedededdfdZede	fd       Z
deddfd	Zdefd
ZdefdZdededefdZy)
LiveRenderzCreates a renderable that may be updated.

    Args:
        renderable (RenderableType): Any renderable object.
        style (StyleType, optional): An optional style to apply to the renderable. Defaults to "".
    
renderablestylevertical_overflowreturnNc                 <    || _         || _        || _        d | _        y )N)r   r   r   _shape)selfr   r   r   s       Z/mnt/e/genesis-system/.venvs/voice-bridge/lib/python3.12/site-packages/rich/live_render.py__init__zLiveRender.__init__   s!     %
!215    c                 :    | j                   y| j                   d   S )zThe number of lines in the last render (may be 0 if nothing was rendered).

        Returns:
            Height in lines
        r   r   )r   )r   s    r   last_render_heightzLiveRender.last_render_height    s     ;;{{1~r   c                     || _         y)z|Set a new renderable.

        Args:
            renderable (RenderableType): Any renderable object, including str.
        N)r   )r   r   s     r   set_renderablezLiveRender.set_renderable+   s     %r   c                     | j                   b| j                   \  }}t        t        j                  t        j                  dfgt        j
                  dft        j                  dff|dz
  z   S t               S )zGet control codes to move cursor to beginning of live render.

        Returns:
            Control: A control instance that may be printed.
           r   )r   r   r   CARRIAGE_RETURNERASE_IN_LINE	CURSOR_UPr   _heights      r   position_cursorzLiveRender.position_cursor3   s     ;;"IAv++**A.

 %..2$22A6 z	#	
 
 yr   c                     | j                   N| j                   \  }}t        t        j                  gt        j                  dft        j
                  dff|z   S t               S )zGet control codes to clear the render and restore the cursor to its previous position.

        Returns:
            Control: A Control instance that may be printed.
        r   r%   )r   r   r   r&   r(   r'   r)   s      r   restore_cursorzLiveRender.restore_cursorH   sd     ;;"IAv++((!,{/H/H!.LMPVV  yr   consoleoptionsc              #     K   | j                   }|j                  | j                        }|j                  |||d      }t	        j
                  |      }|\  }}||j                  j                  kD  r| j                  dk(  r/|d |j                  j                   }t	        j
                  |      }ny| j                  dk(  rj|d |j                  j                  dz
   }t        ddddd	
      }	|j                  t        |j                  |	                   t	        j
                  |      }|| _        t	        j                         }
t        |      D ]  \  }}|E d {    |r|
  y 7 w)NF)r   padr   r   r   z...center zlive.ellipsis)overflowjustifyendr   )r   	get_styler   render_linesr   	get_shapesizer+   r   r   appendlistrenderr   liner   )r   r/   r0   r   r   linesshaper*   r+   overflow_textnew_linelastr?   s                r   __rich_console__zLiveRender.__rich_console__V   sI     __
!!$**-$$Z5$Q!!%(	6GLL'''%%/3 3 34))%0'':59!4!4q!8: $#$)! T'.."?@A))%0<<>#E* 	JD$OO	s   EE+E)E+"E+)r4   r   )__name__
__module____qualname____doc__r
   r   VerticalOverflowMethodr   propertyintr!   r#   r   r,   r.   r   r	   r   rE    r   r   r   r      s     4>		6"	6 	6 2		6
 
	6 C  % %D % * )7	r   r   N)typingr   r   r   _loopr   r/   r   r	   r
   r   controlr   segmentr   r   r   r   textr   rJ   r   rM   r   r   <module>rS      s8    + +  J J  )   !>? g gr   