
    /_i&                    4   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Z%e G d d             Z&d2d3d Z'	 	 	 d4	 	 	 	 	 	 	 	 	 d5d"Z(d6d#Z)d7d$Z*d8d%Z+d9d&Z,d:d'Z-d;d(Z.d<d)Z/d*d+d,d*d,d-d.Z0	 	 	 	 d=d/Z1	 	 	 	 d>d0Z2	 	 	 	 d?d1Z3y!)@    )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   smallmediumlarge	SpaceSizer   r   r   Gapleftcenterright
distributeHorizontalAlignmenttopr#   bottomr%   VerticalAlignmentr"   r#   r$   justifyTextAlignmentg      ?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__r0   __annotations__r1   r2        b/var/www/html/land_sniper/venv/lib/python3.12/site-packages/streamlit/elements/lib/layout_utils.pyr/   r/   6   s#    &*E#*(,F%,+/N(/r8   r/   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)r0   allow_contentvalid_stringss      r9   validate_widthrA   =   st     ec3Z((>>%"  +%,UMBB &	!(>> 
r8   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)r;   r<   r=   r	   r>   extend)r1   r?   allow_stretchadditional_allowedr@   s        r9   validate_heightrF   Z   s    0 fsCj))&-@@&#  +  +  !34&-fmDD ' 
1)&-@@ 
r8   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)r;   r<   r=   r   )sizer@   s     r9   validate_space_sizerI      sg     dS#J''--$?}$+D11 %	D#	419'-- $-	r8   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   r;   r=   SIZE_TO_REM_MAPPING	rem_widthr<   floatpixel_widthuse_contentuse_stretch)r0   width_configs     r9   get_width_configrS      s~    =L%%+>">!4U!;  
EC<	(#&u: 
 	 
)	#'   $( r8   c                    t               }t        | t              r| t        v rt        |    |_        |S t        | t
        t        f      rt        |       |_        |S | dk(  r	d|_        |S d|_	        |S rK   )
r   r;   r=   rL   
rem_heightr<   rN   pixel_heightrP   rQ   )r1   height_configs     r9   get_height_configrX      s~     NM&#6-@#@#6v#>   
FS%L	)%(["
 	 
9	$(!  %)!r8   c                   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   SMALLMEDIUMLARGEr;   r=   lowerkeysNONEr   )rZ   r[   gap_mappinggap_sizevalid_sizess        r9   get_gap_sizere      st     ..K #s99;!&&({"x((	||
(S|
LLr8   c                ,    g d}| |vrt        | d      y )Nr!   st.container)r
   )horizontal_alignmentvalid_horizontal_alignmentss     r9   validate_horizontal_alignmentrj      s(    "K#>>6 .
 	
 ?r8   c                ,    g d}| |vrt        | d      y )Nr'   rg   )r   )vertical_alignmentvalid_vertical_alignmentss     r9   validate_vertical_alignmentrn      s$     I!::45GXX ;r8   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   )r2   valid_alignmentss     r9   validate_text_alignmentrq      s#     >--0@@ .r8   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)rr   r#   rs   rt   rr   rs   r#   %Block.FlexContainer.Justify.ValueTypeJUSTIFY_)map_to_flex_terminologyr   FlexContainerJustifyJUSTIFY_UNDEFINEDr   getattrupper)	alignmentvalid_justifyr,   s      r9   get_justifyr      s     @M%i0Gm#""**<<<,,3E''//8GMMO;L1MN
 	
 /##++/@B r8   c           	         g d}t         |    }||vr$t        j                  j                  j                  S t        dt        t        j                  j                  d|j                                      S )Nrv   #Block.FlexContainer.Align.ValueTypeALIGN_)ry   r   rz   AlignALIGN_UNDEFINEDr   r}   r~   )r   valid_alignaligns      r9   	get_alignr     sf     -K#I.EK""((888-##))VEKKM?+CD r8   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   )r2   alignment_mappingconfigs      r9   get_text_alignment_configr     sd    " $--22%//66$..44&0088	 !"F(8FMr8   )F)r0   r   r?   boolreturnNone)FTN)
r1   zHeight | Literal['auto']r?   r   rD   r   rE   zlist[str] | Noner   r   )rH   r   r   r   )r0   zWidth | SpaceSizer   r   )r1   zHeight | SpaceSizer   r   )rZ   z
str | Noner[   r=   r   zGapSize.ValueType)rh   r&   r   r   )rl   r*   r   r   )r2   r-   r   r   )r   'HorizontalAlignment | VerticalAlignmentr   rw   )r   r   r   r   )r2   r-   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   r<   r   r6   r   r   r   r   r    r&   r*   r-   rL   r/   rA   rF   rI   rS   rX   re   rj   rn   rq   ry   r   r   r   r7   r8   r9   <module>r      s   # ! + +   , / 9 G 7!$wy'9!9 Y 9!566y 6"%	(:": i :'"677	 7W%JKK	9 K34Y 4!()P!Q Y Q&'NO 9 O"#GHy H   0 0 0?>  +/	(A$(A(A (A )	(A
 
(AV.0

M(
YA& ! 6*$
6
(
!r8   