
    `i=                    .   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                   Z+ G 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                  (   e Zd ZdZddddddddddddd	d
ZdZ	 	 	 dQdRdZdSdZ	 	 	 dTdUd$Z	 dVdWd*Z		 	 	 dXdYd.Z
	 	 	 dXdZd0Z	 	 	 dXd[d2ZdSd3Z	 	 	 dXd\d6Z	 	 	 dXd]d8Zd^d;Z	 	 	 d_d`d>Z	 	 dadbd@ZdcdDZdddFZ	 	 	 dXdedGZ	 	 	 dXdfdIZ	 	 	 dgdhdPZdS )i	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                   t          |          | _        t          |          | _        d| _        t          | j                  }t          |          | _        |r)| j        	                    t          |                     d S d S )Nr   )r4   )
r   r6   r   r8   animation_counterr   
base_themer   console
push_theme)selfr4   r6   r8   r;   s        l/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/rich_toolkit/styles/base.py__init__zBaseStyle.__init__5   s     !>>N O O1*==!"4?++
Z000 	2L##E%LL11111	2 	2    returnr   c                    dS )N  r>   s    r?   
empty_linezBaseStyle.empty_lineE   s    srA      Fstartedstepsintbreatheboolanimation_status&Literal['started', 'stopped', 'error']metadatar   list[Color]c                    |dk    }|dk    r6 j                             d          j        t          j        d          n j                             d          j        st          j        ddd          |r|dz  }|r%j         fdt          d|          D             }ng|z  }|r||d d d	         z   }|S )
NrI   r.   r'   r-         c                @    g | ]}t          j        |z            S rE   )r   brightness_multiplier).0i
base_colorr>   s     r?   
<listcomp>z3BaseStyle._get_animation_colors.<locals>.<listcomp>a   s;        
D$>$BCC  rA   r   )	r<   	get_stylecolorr
   parsebgcolorfrom_rgbtripletrange)r>   rJ   rL   rN   rP   animatedcolorsrY   s   `      @r?   _get_animation_colorszBaseStyle._get_animation_colorsH   s    $y0w&&//88>J!"[//
 //
;;CJ 	7S#66J 	QJE 	*
*6    q%  FF !\E)F 	+fTTrTl*FrA   elementr   parentOptional[Element]r   c                    |j         S N)cursor_offset)r>   rf   rg   s      r?   get_cursor_offset_for_elementz'BaseStyle.get_cursor_offset_for_elementn   s     $$rA   	is_activedonekwargsc           
        t          |t                    r|                     ||||          S t          |t                    r|                     ||||          S t          |t
                    r|                     ||||          S t          |t                    r|                     ||||          S t          |t                    r| 
                    ||||          S t          |t                    r(| xj        dz  c_        |                     ||||          S t          |t                    r[|                     |j        ||                    dd          |                    dd          |                    dd                    S t          |t$                    r|                                 S t          |t(                    r|S t+          dt-          |                     )	N   indexr   	max_linesr[   total_lines)rg   rr   rs   rt   zUnknown element type: )
isinstancer7   render_stringr   render_buttonr   render_containerr   render_inputr   render_menur   r:   render_progressr   render_progress_log_liner*   getr   render_spacerr   
ValueErrortype)r>   rf   rm   rn   rg   ro   s         r?   render_elementzBaseStyle.render_elements   s    gs## 	%%gy$GGG(( 	%%gy$GGG++ 	(()T6JJJ'' 	$$WivFFF&& 	##GYfEEE** 	""a'""''D&III.. 	00jj!,, **["55"JJ}b99 1    (( 	%%'''!233 	NA$w--AABBBrA   stringc                    |S rj   rE   )r>   r   rm   rn   rg   s        r?   rv   zBaseStyle.render_string   s	     rA   r   c                B    |rdnd}t          d|j         d|          S )Nzblack on bluezwhite on blackrD   style)r   label)r>   rf   rm   rn   rg   r   s         r?   rw   zBaseStyle.render_button   s4     $-B2B((((6666rA   c                    dS )N rE   rF   s    r?   r~   zBaseStyle.render_spacer   s    rrA   	containerr   c           	         g }t          |j                  D ]:\  }}|                    |                     |||j        k    ||                     ;t          g ||sdndR  S )N)rm   rn   rg   
r   )	enumerateelementsappendr   active_element_indexr   )r>   r   rm   rn   rg   contentrX   rf   s           r?   rx   zBaseStyle.render_container   s     #I$677 	 	JAwNN##9#AA$	 $      8g847ttR8888rA   r   c                   |                      |||          }|                     ||||          }g }|j        s|r?|r|j        rdt	          |j                  z  }|r| d| }|                    |           n,|r|                    |           |                    |           |                     |          x}r|                    |           t	          |          |_        t          | S )Nrm   rg   )rm   rg   rn   *rD   )
render_input_labelrender_input_valueinlinepasswordlenr*   r   render_validation_message_heightr   )	r>   rf   rm   rn   rg   r   r*   contentsvalidation_messages	            r?   ry   zBaseStyle.render_input   s$    ''9V'TT&&yd ' 
 
 > 	"T 	" /( /S... )(($((OOD!!!! '&&&OOD!!!!%!?!?!H!HH 	0OO./// h--hrA   Union[Input, Menu]Optional[str]c                @    |j         rdS |j        du rd|j         dS d S )Nz[cancelled]Cancelled.[/]F[error][/])
_cancelledvalidr   )r>   rf   s     r?   r   z#BaseStyle.render_validation_message   s9     	.--=E!!<W7<<<<trA   inputUnion[Menu, Input]c                   |j         }t          |t                    r|j        r|rdt	          |          z  }|sLd}t          |t                    r |j        }|j        r|j        rd|j         dS |j        rd| dS |sd| dS d| dS )Nr   r   z[placeholder]r   z[placeholder.cancelled]z[text])	r*   ru   r   r   r   r1   default_as_placeholderdefaultr   )r>   r   rm   rg   rn   r*   r1   s          r?   r   zBaseStyle.render_input_value   s     z eU## 	# 	#4 	#T?D 	8K%'' >#// >EM >=5===== 8AAAAA 87{7777!!!!!rA   Union[str, Text, None]c                    ddl m} d }|j        r/|j        }t          ||          r|rd| d}n|j        du rd| d}|S )Nr   )Formz[active]r   Fr   )rich_toolkit.formr   r   ru   r   )r>   r   rm   rg   r   r   s         r?   r   zBaseStyle.render_input_label  sz     	+*****(,; 	1KE&$'' 1 11u111EE[E))0e000ErA   r   	separatorr   c           	     b   t          d          }t          |j        dz             }t          |j        dz             }|j        \  }}|j        ||         }|                                }	|	rn|j        r-|                    t          |j        dz   d                     n:|                    t          dt          |j                  z  dz                        t          |          D ]\  }
}||
z   }||j        k    }|j        r|                    |          }n|}|r|n|}| j                            |rdnd          }|
t          |          d	z
  k    }|                    t          j        ||d
         |s|nd|                     |	rn|j        r-|                    t          d|j        z   d                     n:|                    t          ddt          |j                  z  z                        |j        s)t          d| j                            d                    }|S )zBBuild the menu Text containing scroll indicators and option items.left)justifyrD   r   dimr   r+   r*   rq   namer   zNo results found)r   active_prefixinactive_prefixvisible_options_rangeoptions_needs_scrollinghas_more_abover   MORE_ABOVE_INDICATORr   r   r+   multipleis_option_checked_by_refr<   r\   assemblehas_more_belowMORE_BELOW_INDICATOR)r>   rf   r   menuchecked_prefixunchecked_prefixstartendvisible_optionsneeds_scrollingidxoption
actual_idxis_at_cursor	is_markedprefixr   is_lasts                     r?   _build_menu_optionszBaseStyle._build_menu_options"  sc   F###g3c9:: 7# =>>2
s!/%)4!2244  	R% RD!=!DERRRSSSSDs7+G'H'H!H4!OPPQQQ$_55 	 	KCJ%)99L  )#<<VDD		(	'0F^^6FF L**+Q::6RRES11A55GKK6N%,4II"	       	R% RD(D!DERRRSSSSDc'2N.O.O(O!OPPQQQ 	R*$,2H2H2P2PQQQDrA   list[RenderableType]c                \   |j         sg S g }t          j        |j        | j                            d          f|j        | j                            d          f          }|j        x}r|                    d| d           |                    d           |                    |           |S )Nr*   rD   r   r   r   )	allow_filteringr   r   filter_promptr<   r\   r*   selection_count_hintr   )r>   rf   filter_partsfilter_linehints        r?   _build_filter_partszBaseStyle._build_filter_partsX  s    & 	I-/m"DL$:$:6$B$BC\4<11&99:
 

 //4 	8z4zz7774   K(((rA   c                   |                      |||          }|rt                      }|r*|                    |           |                    d           |j        }|j        s,d|j        cxk    ot          |j                  k     nc }|p| }|r0|                    d| j        	                    d                     n4|                    |j
        | j        	                    d                     |S t          |j        rdnd	          }	|                     ||	          }
|                     |          }g }|r|                    |           |                    |           |                    |
           |                     |          x}r7|                    t          d
                     |                    |           t!          | S )Nr   rD   r   z
Cancelled.r/   r   r,   z  r   r   )r   r   r   r   r   r+   r   r   r<   r\   result_display_namer   r   r   extendr   r   )r>   rf   rm   rn   rg   r   result_contentshould_show_cancelledselection_is_validr   r   r   r   messages                 r?   rz   zBaseStyle.render_menuk  s    ''9V'TT 	"!VVN +%%e,,,%%c*** %,$6!# X%&'*:%Q%Q%Q%QS=Q=Q%Q%Q%Q%Q"(=(WEWAW%$ 	%% ,00== &    
 %%/,00:: &   
 "!9T::	'';;//88(* 	"NN5!!!|$$$t44W===7 	$NN488$$$NN7###grA   r   c                     j         }j        rhj        raj        dk    rj        j         d          nj        }j        dg} j        sg }t          g | fdt          |          D             R  }|S )Nr   r   c           
     x    g | ]6\  }}                     ||j        t          j                             7S ))rr   rs   rt   rg   )r   lines_to_showr   logs)rW   rr   linerf   r>   s      r?   rZ   z-BaseStyle.render_progress.<locals>.<listcomp>  s`     	 	 	 $t ''#")"7$'$5$5& (  	 	 	rA   )current_messager   _inline_logsr   title_should_show_progress_titler   r   )r>   rf   rm   rn   rg   r   r   start_contents   ``      r?   r{   zBaseStyle.render_progress  s     '.&=< 	G0 	 (1,, g335566\  %]B/M3 # " 	 	 	 	 	 (1'?'?	 	 	  G rA   r[   r   
str | Textrr   rs   rt   c                x   t          |t                    rt          j        |          n|}|dk    r|S t	          ||          }d}|t          ||z
            dz  z   }t	          t          ||          d          }|dz   |z  d|z
  z  |z   }	t          |t          j	        | j
                  | j        |	          S )Nr[   g?r#   g      ?rq   )r8   r6   rV   )ru   r7   r   from_markupminabsmaxr   r
   r^   r8   r6   )
r>   r   rr   rs   rt   rg   shown_linesmin_brightnesscurrent_min_brightnessrV   s
             r?   r|   z"BaseStyle.render_progress_log_line  s     *4D#)>)>Ht%%%D??K+y11  "0#kI6M2N2NQT2T!T!$S)?%P%PRU!V!V"'!){!:((!
"!# {4?33!2"7	
 
 
 	
rA   )Nr2   r3   )r4   r5   r6   r7   r8   r7   )rB   r   )rH   FrI   )
rJ   rK   rL   rM   rN   rO   rP   r   rB   rQ   rj   )rf   r   rg   rh   rB   r   )FFN)rf   r   rm   rM   rn   rM   rg   rh   ro   r   rB   r   )
r   r7   rm   rM   rn   rM   rg   rh   rB   r   )
rf   r   rm   rM   rn   rM   rg   rh   rB   r   )
r   r   rm   rM   rn   rM   rg   rh   rB   r   )
rf   r   rm   rM   rn   rM   rg   rh   rB   r   )rf   r   rB   r   )FNF)
r   r   rm   rM   rg   rh   rn   rM   rB   r   )FN)r   r   rm   rM   rg   rh   rB   r   )rf   r   r   r   rB   r   )rf   r   rB   r   )
rf   r   rm   rM   rn   rM   rg   rh   rB   r   )
rf   r   rm   rM   rn   rM   rg   rh   rB   r   )r[   r[   N)r   r   rr   rK   rs   rK   rt   rK   rg   rh   rB   r   )__name__
__module____qualname__rV   r;   r   r@   rG   re   rl   r   rv   rw   r~   rx   ry   r   r   r   r   r   rz   r{   r|   rE   rA   r?   r"   r"      s          "!0 J$ #' +/ )#	2 2 2 2 2    
 CL	$ $ $ $ $N =A% % % % %  $(#C #C #C #C #CP  $(      $(7 7 7 7 7     $(9 9 9 9 90  $(!  !  !  !  ! F     $(" " " " "@  $(	    *4 4 4 4l   ,  $(4 4 4 4 4r  $(# # # # #R $(%
 %
 %
 %
 %
 %
 %
rA   r"   N)-
__future__r   typingr   r   r   r   r   r	   
rich.colorr
   rich.consoler   r   r   r   	rich.textr   
rich.themer   typing_extensionsr   rich_toolkit.buttonr   rich_toolkit.containerr   rich_toolkit.elementr   r   rich_toolkit.inputr   rich_toolkit.menur   rich_toolkit.progressr   r   rich_toolkit.spacerr   rich_toolkit.utils.colorsr   r   r   r   r   r"   rE   rA   r?   <module>r     s   " " " " " " < < < < < < < < < < < < < < < <       J J J J J J J J J J J J             % % % % % % & & & & & & , , , , , , 6 6 6 6 6 6 6 6 $ $ $ $ $ $ " " " " " " 8 8 8 8 8 8 8 8 & & & & & &            !D):$;   
M
 M
 M
 M
 M
 M
 M
 M
 M
 M
rA   