o
    1 ik4                     @  s
  d dl mZ d dlmZmZmZ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 d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlm Z  d dl!m"Z"m#Z# d dl$m%Z% d dl&m'Z'm(Z(m)Z)m*Z* edee dZ+G dd dZ,dS )    )annotations)AnyDictOptionalTypeTypeVarUnion)Color)ConsoleConsoleRenderableGroupRenderableType)Text)Theme)Literal)Button)	Container)CursorOffsetElement)Input)Menu)ProgressProgressLine)Spacer)	fade_textget_terminal_background_colorget_terminal_text_colorlightenConsoleRenderableClass)boundc                   @  s6  e Zd ZdZddddddddddddd	d
ZdZ			d]d^ddZd_ddZ			d`dad&d'Z	dbdcd-d.Z				ddded2d3Z
			dddfd5d6Z			dddgd8d9Zd_d:d;Z			dddhd>d?Z			dddidAdBZdjdEdFZ			dkdldIdJZ		dmdndLdMZ			dddodOdPZ			dddpdRdSZ	T	T	dqdrd[d\ZdS )s	BaseStyle皙?boldz#ffffffgreenwhitez
on #893AE3redgrey62zgrey62 strike)z	tag.titletagtextselectedresultprogresserror	cancelledactiveztitle.errorztitle.cancelledplaceholderzplaceholder.cancelledTN#000000#FFFFFFthemeOptional[Dict[str, str]]background_colorstr
text_colorc                 C  sL   t || _t|| _d| _t| j}t|d| _|r$| j	t| d S d S )Nr   )r2   )
r   r4   r   r6   animation_counterr   
base_themer
   console
push_theme)selfr2   r4   r6   r8    r<   d/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/rich_toolkit/styles/base.py__init__5   s   


zBaseStyle.__init__returnr   c                 C     dS )N r<   r;   r<   r<   r=   
empty_lineE      zBaseStyle.empty_line   Fstartedstepsintbreatheboolanimation_status&Literal['started', 'stopped', 'error']metadatar   list[Color]c                   s   |dk}|dkrj dj  d u rtd nj dj  s)tddd |r/|d }|rD jd urD fddtd	|D }n g| }|rT||d d d
  }|S )NrF   r,   r%   r+         c                   s   g | ]
}t  j| qS r<   )r   brightness_multiplier).0iZ
base_colorr;   r<   r=   
<listcomp>a   s    z3BaseStyle._get_animation_colors.<locals>.<listcomp>r   )	r9   	get_stylecolorr	   parsebgcolorfrom_rgbtripletrange)r;   rG   rI   rK   rM   Zanimatedcolorsr<   rT   r=   _get_animation_colorsH   s&   

zBaseStyle._get_animation_colorselementr   parentOptional[Element]r   c                 C  s   |j S N)Zcursor_offset)r;   r`   ra   r<   r<   r=   get_cursor_offset_for_elementn   s   z'BaseStyle.get_cursor_offset_for_element	is_activedonekwargsc              	   K  s  t |tr| ||||S t |tr| ||||S t |tr'| ||||S t |tr4| ||||S t |t	rA| 
||||S t |trU|  jd7  _| ||||S t |trq| j|j||dd|dd|dddS t |trz|  S t |tr|S tdt| )	N   indexr   	max_linesrV   total_lines)ra   ri   rj   rk   zUnknown element type: )
isinstancer5   render_stringr   render_buttonr   render_containerr   render_inputr   render_menur   r7   render_progressr   render_progress_log_liner(   getr   render_spacerr   
ValueErrortype)r;   r`   re   rf   ra   rg   r<   r<   r=   render_elements   s4   











zBaseStyle.render_elementstringc                 C  s   |S rc   r<   )r;   ry   re   rf   ra   r<   r<   r=   rm      s   zBaseStyle.render_stringr   c                 C  s"   |rdnd}t d|j d|dS )Nzblack on bluezwhite on blackrA   style)r   label)r;   r`   re   rf   ra   r{   r<   r<   r=   rn      s   zBaseStyle.render_buttonc                 C  r@   )N r<   rB   r<   r<   r=   ru      rD   zBaseStyle.render_spacer	containerr   c              	   C  sV   g }t |jD ]\}}|| j|||jk||d qtg ||s&dR  S dR  S )N)re   rf   ra   
r}   )	enumerateelementsappendrx   Zactive_element_indexr   )r;   r~   re   rf   ra   contentrS   r`   r<   r<   r=   ro      s    	zBaseStyle.render_containerr   c           	      C  s   | j |||d}| j||||d}g }|js|r3|r$|jr$dt|j }|r-| d| }|| n|r:|| || | | }rK|| t||_t	| S )Nre   ra   )re   ra   rf   *rA   )
render_input_labelrender_input_valueinlinepasswordlenr(   r   render_validation_message_heightr   )	r;   r`   re   rf   ra   r|   r(   contentsvalidation_messager<   r<   r=   rp      s$   





zBaseStyle.render_inputUnion[Input, Menu]Optional[str]c                 C  s&   |j rdS |jdu rd|j dS d S )Nz[cancelled]Cancelled.[/]F[error][/])
_cancelledvalidr   )r;   r`   r<   r<   r=   r      s
   
z#BaseStyle.render_validation_messageinputUnion[Menu, Input]c                 C  s   |j }t|tr|jr|rdt| }|s=d}t|tr,|j}|jr,|jr,d|j dS |jr5d| dS |s=d| dS d| dS )Nr   r}   z[placeholder]r   z[placeholder.cancelled]z[text])	r(   rl   r   r   r   r/   Zdefault_as_placeholderdefaultr   )r;   r   re   ra   rf   r(   r/   r<   r<   r=   r      s   
zBaseStyle.render_input_valueUnion[str, Text, None]c                 C  sT   ddl m} d }|jr(|j}t||r(|rd| d}|S |jdu r(d| d}|S )Nr   )Formz[active]r   Fr   )Zrich_toolkit.formr   r|   rl   r   )r;   r   re   ra   r   r|   r<   r<   r=   r     s   

zBaseStyle.render_input_labelr   c              	   C  s  t dd}t |jd }t |jd }t |jrdnd}|rDt  }	|	| j|||d |	d |	j|j|j d | j	dd	 |	S t
|jD ]5\}
}|
|jkr[|}| j	d
}n|}| j	d}|
t|jd k}|t j||d |sx|nd|d	 qI|jst d| j	dd	}|jrt |j| j	df|j| j	dfdgng }g }|| | || || | | }r|t d || t| S )Nleft)justifyrA   	r   r   namer*   rz   r)   r(   rh   r}   zNo results found)r   Zcurrent_selection_charZselection_charr   r   r   optionsr)   r9   rW   r   r   assembleZallow_filteringZfilter_promptr(   extendr   r   )r;   r`   re   rf   ra   ZmenuZselected_prefixZnot_selected_prefix	separatorZresult_contentZid_optionprefixr{   Zis_lastfilterr   messager<   r<   r=   rq   "  sd   




	



zBaseStyle.render_menur   c                   sr    j } jr7 jr7 jdkr j j d  n j} jdg}js$g }tg | fddt|D R  }|S )Nr   r}   c              	     s,   g | ]\}}j || jt j d qS ))ri   rj   rk   ra   )rx   lines_to_showr   logs)rR   ri   liner`   r;   r<   r=   rU     s    z-BaseStyle.render_progress.<locals>.<listcomp>)Zcurrent_messager   Z_inline_logsr   title_should_show_progress_titler   r   )r;   r`   re   rf   ra   r   r   Zstart_contentr<   r   r=   rr   n  s"   

zBaseStyle.render_progressrV   r   
str | Textri   rj   rk   r   c           
      C  s   t |tr
t|n|}|dkr|S t||}d}|t|| d  }tt||d}|d | d|  | }	t|t	| j
| j|	dS )NrV   g?r!   g      ?rh   )r6   r4   rQ   )rl   r5   r   from_markupminabsmaxr   r	   rY   r6   r4   )
r;   r   ri   rj   rk   ra   Zshown_linesZmin_brightnessZcurrent_min_brightnessrQ   r<   r<   r=   rs     s$   



z"BaseStyle.render_progress_log_line)Nr0   r1   )r2   r3   r4   r5   r6   r5   )r?   r   )rE   FrF   )
rG   rH   rI   rJ   rK   rL   rM   r   r?   rN   rc   )r`   r   ra   rb   r?   r   )FFN)r`   r   re   rJ   rf   rJ   ra   rb   rg   r   r?   r   )
ry   r5   re   rJ   rf   rJ   ra   rb   r?   r   )
r`   r   re   rJ   rf   rJ   ra   rb   r?   r   )
r~   r   re   rJ   rf   rJ   ra   rb   r?   r   )
r`   r   re   rJ   rf   rJ   ra   rb   r?   r   )r`   r   r?   r   )FNF)
r   r   re   rJ   ra   rb   rf   rJ   r?   r   )FN)r   r   re   rJ   ra   rb   r?   r   )
r`   r   re   rJ   rf   rJ   ra   rb   r?   r   )
r`   r   re   rJ   rf   rJ   ra   rb   r?   r   )rV   rV   N)r   r   ri   rH   rj   rH   rk   rH   ra   rb   r?   r   )__name__
__module____qualname__rQ   r8   r   r>   rC   r_   rd   rx   rm   rn   ru   ro   rp   r   r   r   rq   rr   rs   r<   r<   r<   r=   r       s    
'(


# O)r    N)-
__future__r   typingr   r   r   r   r   r   Z
rich.colorr	   Zrich.consoler
   r   r   r   Z	rich.textr   Z
rich.themer   Ztyping_extensionsr   Zrich_toolkit.buttonr   Zrich_toolkit.containerr   Zrich_toolkit.elementr   r   Zrich_toolkit.inputr   Zrich_toolkit.menur   Zrich_toolkit.progressr   r   Zrich_toolkit.spacerr   Zrich_toolkit.utils.colorsr   r   r   r   r   r    r<   r<   r<   r=   <module>   s&     