
    4i)                    <   U d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZ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 eed
   z  Zded<   eed   z  Zded<   eed
   z  Zded<   eed   z  Zded<   eed   z  Z ded<   ed   Z!ded<   ed   Z"ded<   ed   Z#ded<   ed   Z$ded<   dddddd d!dZ%e G d" d#             Z&d6d7d$Z'	 	 	 d8	 	 	 	 	 	 	 	 	 d9d&Z(d:d'Z)d;d(Z*d<d)Z+d=d*Z,d>d+Z-d?d,Z.d@d-Z/d.d/d0d.d0d1d2Z0	 	 	 	 dAd3Z1	 	 	 	 dBd4Z2	 	 	 	 dCd5Z3y%)D    )annotations)	dataclass)Literal	TypeAliascast)StreamlitInvalidColumnGapErrorStreamlitInvalidHeightError(StreamlitInvalidHorizontalAlignmentErrorStreamlitInvalidSizeError"StreamlitInvalidTextAlignmentError&StreamlitInvalidVerticalAlignmentErrorStreamlitInvalidWidthError)Block)GapSize)HeightConfig)TextAlignmentConfig)WidthConfigstretchr   WidthWithoutContent)r   contentWidthHeightWithoutContentHeightr   xxsmallxsmallsmallmediumlargexlargexxlarge	SpaceSizer   r   r   r   r   r    r!   Gapleftcenterright
distributeHorizontalAlignmenttopr'   bottomr)   VerticalAlignmentr&   r'   r(   justifyTextAlignmentg      ?g      ?g      ?g      @g      @      c                  8    e Zd ZU dZded<   dZded<   dZded<   y)LayoutConfigNzWidth | SpaceSize | NonewidthzHeight | SpaceSize | NoneheightzTextAlignment | Nonetext_alignment)__name__
__module____qualname__r6   __annotations__r7   r8        m/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/streamlit/elements/lib/layout_utils.pyr5   r5   A   s#    &*E#*(,F%,+/N(/r>   r5   c                    t        | t        t        f      st        | |      t        | t              r'dg}|r|j	                  d       | |vrt        | |      y| dk  rt        | |      y)a'  Validate the width parameter.

    Parameters
    ----------
    width : Any
        The width value to validate.
    allow_content : bool
        Whether to allow "content" as a valid width value.

    Raises
    ------
    StreamlitInvalidWidthError
        If the width value is invalid.
    r   r   r   N)
isinstanceintstrr   append)r6   allow_contentvalid_stringss      r?   validate_widthrG   H   st     ec3Z((>>%"  +%,UMBB &	!(>> 
r>   Nc                "   t        | t        t        f      st        | |      t        | t              rLg }|r|j	                  d       |r|j	                  d       |r|j                  |       | |vrt        | |      y| dk  rt        | |      y)a  Validate the height parameter.

    Parameters
    ----------
    height : Any
        The height value to validate.
    allow_content : bool
        Whether to allow "content" as a valid height value.
    allow_stretch : bool
        Whether to allow "stretch" as a valid height value.
    additional_allowed : list[str] or None
        Additional string values to allow beyond the base allowed values.

    Raises
    ------
    StreamlitInvalidHeightError
        If the height value is invalid.
    r   r   r   N)rA   rB   rC   r	   rD   extend)r7   rE   allow_stretchadditional_allowedrF   s        r?   validate_heightrL   e   s    0 fsCj))&-@@&#  +  +  !34&-fmDD ' 
1)&-@@ 
r>   c                    t        | t        t        f      st        |       t        | t              rg d}| |vrt        |       yt        | t              r| dk  rt        |       yy)zValidate the size parameter for st.space.

    Parameters
    ----------
    size : Any
        The size value to validate.

    Raises
    ------
    StreamlitInvalidSizeError
        If the size value is invalid.
    r   r   N)rA   rB   rC   r   )sizerF   s     r?   validate_space_sizerO      sk     dS#J''--$	
 }$+D11 %	D#	419'-- $-	r>   c                    t               }t        | t              r| t        v rt        |    |_        |S t        | t
        t        f      rt        |       |_        |S | dk(  r	d|_        |S d|_	        |S Nr   T)
r   rA   rC   SIZE_TO_REM_MAPPING	rem_widthrB   floatpixel_widthuse_contentuse_stretch)r6   width_configs     r?   get_width_configrY      s~    =L%%+>">!4U!;  
EC<	(#&u: 
 	 
)	#'   $( r>   c                    t               }t        | t              r| t        v rt        |    |_        |S t        | t
        t        f      rt        |       |_        |S | dk(  r	d|_        |S d|_	        |S rQ   )
r   rA   rC   rR   
rem_heightrB   rT   pixel_heightrV   rW   )r7   height_configs     r?   get_height_configr^      s~     NM&#6-@#@#6v#>   
FS%L	)%(["
 	 
9	$(!  %)!r>   c                   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  d}t        | t              r)| j                         }|j                         }||v r||   S | t         j                  S t        | |      )z6Convert a gap string or None to a GapSize proto value.r#   )gapelement_type)r   XXSMALLXSMALLSMALLMEDIUMLARGEXLARGEXXLARGErA   rC   lowerkeysNONEr   )r`   ra   gap_mappinggap_sizevalid_sizess        r?   get_gap_sizero      s     ??......??K #s99;!&&({"x((	||
(S|
LLr>   c                ,    g d}| |vrt        | d      y )Nr%   st.container)r
   )horizontal_alignmentvalid_horizontal_alignmentss     r?   validate_horizontal_alignmentrt      s(    "K#>>6 .
 	
 ?r>   c                ,    g d}| |vrt        | d      y )Nr+   rq   )r   )vertical_alignmentvalid_vertical_alignmentss     r?   validate_vertical_alignmentrx      s$     I!::45GXX ;r>   c                *    g d}| |vrt        |       y)a	  Validate the text_alignment parameter.

    Parameters
    ----------
    text_alignment : TextAlignment
        The text alignment value to validate.

    Raises
    ------
    StreamlitInvalidTextAlignmentError
        If the text_alignment value is invalid.
    r/   N)r   )r8   valid_alignmentss     r?   validate_text_alignmentr{      s#     >--0@@ .r>   startr'   endspace_between)r&   r'   r(   r,   r-   r)   c           	     l   g d}t         |    }||vr$t        j                  j                  j                  S |dv r?t        dt        t        j                  j                  d|j                                      S t        dt        t        j                  j                  |j                                      S )N)r|   r'   r}   r~   r|   r}   r'   %Block.FlexContainer.Justify.ValueTypeJUSTIFY_)map_to_flex_terminologyr   FlexContainerJustifyJUSTIFY_UNDEFINEDr   getattrupper)	alignmentvalid_justifyr0   s      r?   get_justifyr     s     @M%i0Gm#""**<<<,,3E''//8GMMO;L1MN
 	
 /##++/@B r>   c           	         g d}t         |    }||vr$t        j                  j                  j                  S t        dt        t        j                  j                  d|j                                      S )Nr   #Block.FlexContainer.Align.ValueTypeALIGN_)r   r   r   AlignALIGN_UNDEFINEDr   r   r   )r   valid_alignaligns      r?   	get_alignr     sf     -K#I.EK""((888-##))VEKKM?+CD r>   c                    t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j
                  d}t               }||    |_        |S )a  Convert text alignment string to proto config.

    Parameters
    ----------
    text_alignment : TextAlignment
        The text alignment value ("left", "center", "right", "justify").

    Returns
    -------
    TextAlignmentConfig
        Proto message with alignment set.
    r/   )r   	AlignmentLEFTCENTERRIGHTJUSTIFYr   )r8   alignment_mappingconfigs      r?   get_text_alignment_configr   ,  sd    " $--22%//66$..44&0088	 !"F(8FMr>   )F)r6   r   rE   boolreturnNone)FTN)
r7   zHeight | Literal['auto']rE   r   rJ   r   rK   zlist[str] | Noner   r   )rN   r"   r   r   )r6   zWidth | SpaceSizer   r   )r7   zHeight | SpaceSizer   r   )r`   z
str | Nonera   rC   r   zGapSize.ValueType)rr   r*   r   r   )rv   r.   r   r   )r8   r1   r   r   )r   'HorizontalAlignment | VerticalAlignmentr   r   )r   r   r   r   )r8   r1   r   r   )4
__future__r   dataclassesr   typingr   r   r   streamlit.errorsr   r	   r
   r   r   r   r   streamlit.proto.Block_pb2r   streamlit.proto.GapSize_pb2r    streamlit.proto.HeightConfig_pb2r   'streamlit.proto.TextAlignmentConfig_pb2r   streamlit.proto.WidthConfig_pb2r   rB   r   r<   r   r   r   r"   r$   r*   r.   r1   rR   r5   rG   rL   rO   rY   r^   ro   rt   rx   r{   r   r   r   r   r=   r>   r?   <module>r      s   # ! + +   , / 9 G 7!$wy'9!9 Y 9!566y 6"%	(:": i :'"677	 7W 
9  HY  "))P!Q Y Q&'NO 9 O"#GHy H   0 0 0?>  +/	(A$(A(A (A )	(A
 
(AV.B

M0
YA& ! 6*$
6
(
!r>   